context:property-placeholder

Spring中的xml中使用<context:property-placeholderlocation>标签导入配置文件时,想要导入多个properties配置文件,如下:

<context:property-placeholderlocation="classpath:db.properties " />

<context:property-placeholderlocation="classpath:zxg.properties " />


结果发现不行,第二个配置文件始终读取不到,后来发现<context:property-placeholder>标签在Spring配置文件中只能存在一份!!!Spring容器是采用反射扫描的发现机制,通过标签的命名空间实例化实例,当Spring探测到容器中有一个org.springframework.beans.factory.config.PropertyPlaceholderCVonfigurerBean就会停止对剩余PropertyPlaceholderConfigurer的扫描,即只能存在一个实例。

  1. <context:property-placeholder
  2. location=""
  3. file-encoding=""
  4. ignore-resource-not-found=""
  5. ignore-unresolvable=""
  6. properties-ref=""
  7. local-override=""
  8. system-properties-mode=""
  9. order=""
  10. />

那如果有多个配置文件怎么办呢?那就多个文件之间以“,”分隔,如下:

<context:property-placeholderlocation="classpath:db.properties,classpath:monitor.properties" />


值得注意的是:多个配置文件将依次加载,如果后一个文件中有和前面某一个文件中属性名是相同的,最终取的值是后加载的值。

posted @ 2018-09-01 13:03  爬上巨人的肩膀  阅读(118)  评论(0)    收藏  举报