解决关于配置文件的占位符无法读取问题

前提是:

  其他的配置文件中已经配置了<context:property-placeholder location="classpath:jdbc.properties"/>

主要原因是:

  Spring容器采用反射扫描的发现机制,在探测到Spring容器中有一个org.springframework.beans.factory.config.PropertyPlaceholderConfigurer的Bean就会停止对剩余PropertyPlaceholderConfigurer的扫描(Spring 3.1已经使用PropertySourcesPlaceholderConfigurer替代PropertyPlaceholderConfigurer了)。而<context:property-placeholder/>这个基于命名空间的配置,其实内部就是创建一个PropertyPlaceholderConfigurer Bean而已。换句话说,即Spring容器仅允许最多定义一个PropertyPlaceholderConfigurer(或<context:property-placeholder/>),其余的会被Spring忽略掉。

解决方法是:
  改成<context:property-placeholder location="classpath:redis.properties" ignore-unresolvable="true"/>
 
如果上述问题仍没有解决在一个配置文件中直接使用<context:property-placeholder location="classpath:*.properties"/>
posted @ 2017-09-20 10:43  BINGJJFLY  阅读(1250)  评论(0编辑  收藏  举报