我有几个属性文件,在配置
中描述@Configuration
@PropertySources({
@PropertySource(name="p1", value = "classpath:p1.properties"),
@PropertySource(name="p2", value = "classpath:p2.properties")})
两个文件都具有相同键和不同值的属性,例如:
prop1=11
prop2=12
和
prop1=21
prop2=22
如何引用正确的属性源来使用值?我的意思是smth喜欢
@Value("${p1.prop1}")
private int prop11;
@Bean
public SomeBean someBean() {
return new SomeBean(prop11);
}
但@Value("${p1.prop1}")
是我错误的尝试。
答案 0 :(得分:2)
你做不到。这两个属性源将合并到同一个Spring Environment中。 .properties文件中相同键的最后声明值将覆盖同一键的任何先前值。如果您阅读@PropertySource的JavaDoc,您将找到以下声明:
如果给定的属性键存在于多个.properties文件中,则处理的最后一个@PropertySource批注将“赢”并覆盖。