Spring环境特定的属性

时间:2018-05-25 11:20:57

标签: spring spring-properties

我有一个弹簧上下文配置。在此配置中,我有以下属性占位符:

<context:property-placeholder location="classpath:my_prop_file.properties,
    classpath:my_prop_file-${envTarget}.properties" ignore-resource-not-found="true"/>

我的想法是,所有属性都在my_prop_file.properties中设置,而在其他属性文件中我只覆盖一些(my_prop_file-env1.properties,my_prop_file-env2.properties等)。 这很好用。问题是我在启动时省略了vm参数-DenvTarget。有没有办法默认它?如果未设置该值,我会收到:

Could not resolve placeholder 'envTarget' in string value 

1 个答案:

答案 0 :(得分:0)

您可以创建一个空的my_prop_file-local.properties文件,并修改属性占位符定义以包含envTarget的默认值。

<context:property-placeholder 
   location="classpath:my_prop_file.properties, classpath:my_prop_file-${envTarget:local}.properties" 
   ignore-resource-not-found="true"/>