我希望将Spring
配置为在生产期间覆盖某些属性,但仅在(!)中找到production.properties
文件并且仅针对其定义的属性。但这些约束只适用于此生产文件。应该要求所有其他属性文件。
但我无法在spring配置中导入两个不同的属性资源。我需要改变什么?
@Configuration
@PropertySource({"classpath:default.properties"})
@PropertySource({"file:production.properties"}, ignoreResourceNotFound = true) //Error: Duplicate annotation
答案 0 :(得分:2)
尝试PropertySources
注释,它是一个聚合多个PropertySource
注释的容器注释。
答案 1 :(得分:0)
您可以在配置文件中执行以下操作:
@Bean
public static PropertySourcesPlaceholderConfigurer properties() {
final PropertySourcesPlaceholderConfigurer pspc = new PropertySourcesPlaceholderConfigurer();
Resource[] resources = new Resource[ ] {
new ClassPathResource( "default.properties" ),
new FileSystemResource("production.properties")
};
pspc.setLocations( resources );
pspc.setIgnoreResourceNotFound(true);
pspc.setIgnoreUnresolvablePlaceholders(false);
return pspc;
}