根据环境为实体设置不同的属性名称

时间:2018-06-19 14:00:27

标签: spring spring-boot ldap spring-ldap

我正在编写一个与Ldap用户存储库交互的应用程序。我有两个环境,问题在于每个属性中都有一个名称不同的属性。有没有一种方法可以配置它,这样我就不必为每个环境都构建一个版本?

2 个答案:

答案 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