spring - <context:property-placeholder> 加载多个属性但忽略缺失的属性
spring - <context:property-placeholder> load multiple properties but ignore missing ones
我在 applicationContext.xml
中使用了以下配置
<context:property-placeholder location="classpath:system.properties,file:/data/conf/system.properties,file:/data/conf/1033.properties" ignore-unresolvable="true" />
加载一些占位符:
- 使用
classpath:system.properties
中定义的这些属性;
- 如果
/data/conf/system.properties
中存在文件或属性,请使用它们代替上面的内容;
- 如果
/data/conf/1033.properties
中存在文件或属性,请使用它们代替上面的内容。
现在 Spring 如果 /data/conf/system.properties
和 /data/conf/1033.properties
都存在,则可以正常启动,但如果其中任何一个都不存在,它将抛出 rg.springframework.beans.factory.BeanInitializationException: Could not load properties; nested exception is java.io.FileNotFoundException: ...
。
如何判断 spring 加载这些属性但忽略缺失的属性。
你必须添加ignore-resource-not-found="true"
<context:property-placeholder location="classpath:system.properties,file:/data/conf/system.properties,file:/data/conf/1033.properties"
ignore-unresolvable="true"
ignore-resource-not-found="true"/>
我在 applicationContext.xml
中使用了以下配置<context:property-placeholder location="classpath:system.properties,file:/data/conf/system.properties,file:/data/conf/1033.properties" ignore-unresolvable="true" />
加载一些占位符:
- 使用
classpath:system.properties
中定义的这些属性; - 如果
/data/conf/system.properties
中存在文件或属性,请使用它们代替上面的内容; - 如果
/data/conf/1033.properties
中存在文件或属性,请使用它们代替上面的内容。
现在 Spring 如果 /data/conf/system.properties
和 /data/conf/1033.properties
都存在,则可以正常启动,但如果其中任何一个都不存在,它将抛出 rg.springframework.beans.factory.BeanInitializationException: Could not load properties; nested exception is java.io.FileNotFoundException: ...
。
如何判断 spring 加载这些属性但忽略缺失的属性。
你必须添加ignore-resource-not-found="true"
<context:property-placeholder location="classpath:system.properties,file:/data/conf/system.properties,file:/data/conf/1033.properties"
ignore-unresolvable="true"
ignore-resource-not-found="true"/>