Сообщения

Показаны сообщения с ярлыком "Spring Bean Profile"

Spring IoC контейнер: абстракция Environment, профили определения компонентов, XML

Изображение
Аналогом в XML является атрибут profile элемента <beans>. Наш предыдущий пример конфигурации можно переписать в два файла XML следующим образом: <beans profile="development" xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jdbc="http://www.springframework.org/schema/jdbc" xsi:schemaLocation="..."> <jdbc:embedded-database id="dataSource"> <jdbc:script location="classpath:com/bank/config/sql/schema.sql"/> <jdbc:script location="classpath:com/bank/config/sql/test-data.sql"/> </jdbc:embedded-database> </beans> <beans profile="production" xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jee="http://www.springframework.org/schema/jee" xsi:...

Spring IoC контейнер: абстракция Environment, профили определения компонентов, использование @Profile

Изображение
Аннотация @Profile позволяет указать, что компонент имеет право на регистрацию, если активен один или несколько указанных профилей. Используя наш предыдущий пример , мы можем переписать конфигурацию источника данных следующим образом: Java @Configuration @Profile("development") public class StandaloneDataConfig { @Bean public DataSource dataSource() { return new EmbeddedDatabaseBuilder() .setType(EmbeddedDatabaseType.HSQL) .addScript("classpath:com/bank/config/sql/schema.sql") .addScript("classpath:com/bank/config/sql/test-data.sql") .build(); } } Kotlin @Configuration @Profile("development") class StandaloneDataConfig { @Bean fun dataSource(): DataSource { return EmbeddedDatabaseBuilder() .setType(EmbeddedDatabaseType.HSQL) .addScript("classpath:com/bank/config/sql/schema.sql") .addScript(...

Spring IoC контейнер: абстракция Environment, профили определения компонентов

Изображение
Профили определения bean-компонентов обеспечивают механизм в основном контейнере, который позволяет регистрировать различные bean-компоненты в разных средах. Слово "среда" может означать разные вещи для разных пользователей, и эта функция может помочь во многих случаях использования, в том числе: Работа с источником данных в памяти при разработке по сравнению с поиском того же источника данных из JNDI в процессе контроля качества или производства. Регистрация инфраструктуры мониторинга только при развертывании приложения в производственной среде. Регистрация настраиваемых реализаций bean-компонентов для развертываний клиента A и клиента B. Рассмотрим первый вариант использования в практическом приложении, требующем DataSource. В тестовой среде конфигурация может выглядеть следующим образом: Java @Bean public DataSource dataSource() { return new EmbeddedDatabaseBuilder() .setType(EmbeddedDatabaseType.HSQL) .addScript("my-schema.sql") ...