同时配置redis和hbase的配置文件遇到的问题

问题以及分析:

redis和hbase的xml的配置文件要分别读取不同的properties文件以获取配置信息,但是

Spring容器采用反射扫描的发现机制,在探测到Spring容器中有一个org.springframework.beans.factory.config.PropertyPlaceholderConfigurer的Bean就会停止对剩余PropertyPlaceholderConfigurer的扫描(Spring 3.1已经使用PropertySourcesPlaceholderConfigurer替代PropertyPlaceholderConfigurer了)。 

而这个基于命名空间的配置,其实内部就是创建一个PropertyPlaceholderConfigurer Bean而已。换句话说,即Spring容器仅允许最多定义一个PropertyPlaceholderConfigurer(或),其余的会被Spring忽略掉,这就导致了redis的properties文件可以读取到,而hbase的properties文件读取不到



解决办法:

不再用<context:property-placeholder location="file:/opt/search/resourse/ps_redis.properties"/>这种方式,使用

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
        <property name="fileEncoding" value="UTF-8" />   
        <property name="locations">  
            <list>  
                <value>file:/opt/search/resourse/hbase.properties</value> 
                <value>file:/opt/search/resourse/ps_redis.properties</value> 
            </list>  
        </property>  
    </bean>  
    <!-- Redis配置 -->
    <import resource="/redis.xml" /> 
    <!-- Hbase配置 -->
    <import resource="classpath:/spring-hbase.xml" />

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值