如何在Spring配置中导入生产的可选属性文件?

时间:2014-04-01 11:30:27

标签: java spring

我希望将Spring配置为在生产期间覆盖某些属性,但仅在(!)中找到production.properties文件并且仅针对其定义的属性。但这些约束只适用于此生产文件。应该要求所有其他属性文件。

但我无法在spring配置中导入两个不同的属性资源。我需要改变什么?

@Configuration
@PropertySource({"classpath:default.properties"})
@PropertySource({"file:production.properties"}, ignoreResourceNotFound = true) //Error: Duplicate annotation

2 个答案:

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