Annotation @Profile
The annotation @Profile to only enable the Bean for that specific spring profile.
For example:
@Getter
@Setter
public class DataSource {
private String url;
}
@Configuration
public class MyConfiguration {
@Bean
@Profile("!prod")
public DataSource nonProdDataSource() {
DataSource dataSource = new DataSource();
dataSource.setUrl("sit url");
return dataSource;
}
@Bean
@Profile("prod")
public DataSource prodDataSource() {
DataSource dataSource = new DataSource();
dataSource.setUrl("prod url");
return dataSource;
}
}
As a result, when setting spring.profiles.active: prod (see Spring Property Profile), only the datasource with prod url is enabled.