Используя аннотацию профиля в классе конфигурации, все компоненты в этом классе конфигурации принадлежат этому профилю.
@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”