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" />

加载一些占位符:

  1. 使用 classpath:system.properties 中定义的这些属性;
  2. 如果 /data/conf/system.properties 中存在文件或属性,请使用它们代替上面的内容;
  3. 如果 /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"/>