我正在编写一个与Ldap用户存储库交互的应用程序。我有两个环境,问题在于每个属性中都有一个名称不同的属性。有没有一种方法可以配置它,这样我就不必为每个环境都构建一个版本?
答案 0 :(得分:1)
您可以在存储库类上编写抽象代码,然后根据环境进行注入 Spring wiring conditional to an environment
答案 1 :(得分:0)
您可以使用@Profile批注基于概要文件创建2个不同的配置bean,并且在每种情况下都使用该环境的属性名称。
例如:假设我有2个env local和prod,并且每个env中的数据库连接属性都有不同的名称。
local:“ local.db.con” prod:“ prod.db.con”
@Configuration
@Profile("local")
public LocalDBConfig{
@Value("${local.db.con}")
private String dbCon;
@Bean
public DataSource datasource{
// use dbCon here
}
}
类似地
@Configuration
@Profile("prod")
public ProdDBConfig{
@Value("${prod.db.con}")
private String dbCon;
@Bean
public DataSource datasource{
// use dbCon here
}
}
根据您的配置文件,将加载任何配置,并使用属性创建DataSource bean