Используя аннотацию профиля в классе конфигурации, все компоненты в этом классе конфигурации принадлежат этому профилю.
@Configuration @Profile("dev") public class TestInfrastructureConfig { }
Используя аннотацию профиля для метода компонента, этот компонент принадлежит этому профилю.
@Configuration public class TestInfrastructureConfig { @Bean(name="dataSource") @Profile("dev") public DataSource dataSourceForDev(){ ... } @Bean(name="dataSource") @Profile("prod") // or @Profile("!dev") public DataSource dataSourceForProd(){ ... } }
Оба профиля имеют одинаковый идентификатор компонента, но будет активирован только один профиль.
- Командная строка: При запуске приложения (лучший подход)
java -Dspring.profiles.active=dev -jar yourApplication.jar
- Системное свойство: По коду (комбинированный подход)
System.setProperty("spring.profiles.active", "dev");
Оригинал: “https://dev.to/eidher/profiles-in-spring-490p”