Spring 环境特定属性

Spring environment specific properties

我有一个 spring 上下文配置。在此配置中,我有以下 属性-placeholder:

<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 

您可以创建一个空的 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"/>