单个application.properties文件中的公共和配置文件特定属性

时间:2016-09-14 22:21:58

标签: spring spring-mvc spring-profiles

我正在写一个spring mvc应用程序。我想利用弹簧轮廓的功能。我想拥有一个具有常见和配置文件特定属性的application.properties。我还想在同一个文件中设置一个默认配置文件。我该怎么做?

1 个答案:

答案 0 :(得分:0)

您可以创建一个额外的弹簧配置类,以根据弹簧配置文件动态返回属性:

@Configuration
@PropertySource("classpath:application.properties")
public class QuotePropertyConfiguration {

    @Inject
    private Environment environment;

    @Bean
    public String getMySpecificProperty() {
        return environment.getProperty("myprop." + Arrays.toString(env.getActiveProfiles()) + ".thing");
    }
}

这会让你回归,例如myprop.dev.thing,myprop.test.thing,myprop.prod.thing等取决于活动弹簧配置文件。

或者您也可以使用多个application.properties文件执行此操作:从spring documentation

  

除了application.properties文件外,还有特定于配置文件   也可以使用命名约定来定义属性   应用 - {}配置文件的.properties。环境有一组默认值   配置文件(默认情况下为[默认]),如果没有活动配置文件则使用   设置(即如果没有明确激活配置文件,则属性   从application-default.properties加载)。