Есть ли способ включить или отключить определение Java-бина в контексте приложения?
<bean id="enBean" classs="com.en.bean.BeanName"> <property name="prop1"/> </bean>
Или есть ли способ загрузить bean условно , определенный в контексте приложения?
Существует новая функция @Profile в пружине 3.1, которая будет выполнять эту работу
@Profile
С здесь
Весна 3.1вводит понятие профилей среды.Распространенным вариантом использования является настройка bean-компонентов, которые различаются между средой разработки, QA и производственной средой.Типичный пример - использование автономного источника данных в разработке и поиск источника данных из JNDI в производстве.Другим примером является профиль bean для профилирования, который можно легко включить или отключить.Вы можете добавить атрибут профиля к элементу bean в XML или добавить аннотацию @Profile в коде.Обратите внимание, что bean-компонент Spring может быть назначен нескольким профилям.
<beans profile="dev"> ... </beans> @Profile("dev") public class Bean { ... }
Эти профили можно активировать с помощью свойства spring.profiles.active, которое можно указать с помощью переменной среды, aСистемное свойство JVM, сервлет в web.xml или JNDI.Эти профили также можно активировать с помощью кода, используя Environment.setActiveProfiles (String ...).Чтобы заставить работать профили компонентов, теперь в Spring XML разрешены вложенные элементы компонентов, хотя они ограничены только в конце файла.Обратите внимание, что рекомендуется поддерживать топологию вашего компонента как можно ближе между средами, чтобы ваше приложение было должным образом протестировано в разных средах.Вы также используете метод Environment.containsProperty () для поиска свойств в различных источниках свойств.Это разрешение свойства также работает для переменных $ {placeholder} в определениях bean-компонентов XML.