Spring PropertyPlaceholderConfigurer对2个dataSources失败

时间:2014-05-14 15:22:11

标签: mysql spring configuration mybatis

Spring 3.2.3 PropertyPlaceholderConfigurer无法初始化2个dataSorces。 对于单一的它可以很好地工作,但是当我从第二个“rbmDataSource”中删除注释时,它会失败。 我不明白为什么?

database.properties文件

db.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/db
db.username=root
db.password=
management.db.driver=com.mysql.jdbc.Driver
management.db.url=jdbc:mysql://localhost:3306/db_management
management.db.username=root
management.db.password=

Spring applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans ...>
    <mvc:annotation-driven />

    <context:component-scan base-package="com.db.api" />

    <!-- context:property-placeholder location="/WEB-INF/properties/database.properties" ignore-unresolvable="true"/-->

    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location">
            <value>/WEB-INF/properties/database.properties</value>
        </property>
    </bean>


    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.db.api.dao" />
        <property name="sqlSessionFactoryBeanName" value="rbSqlSessionFactory" />
    </bean>

    <bean id="rbSqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"
        name="rbSqlSessionFactory">
        <property name="dataSource" ref="rbDataSource" />
    </bean>

    <bean id="rbDataSource" class="org.apache.commons.dbcp.BasicDataSource"
        destroy-method="close">
        <property name="driverClassName" value="${db.driver}" />
        <property name="url" value="${db.url}" />
        <property name="username" value="${db.username}" />
        <property name="password" value="${db.password}" />
        <property name="validationQuery" value="SELECT 1" />
    </bean>

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.db.api.management.dao" />
        <property name="sqlSessionFactoryBeanName" value="rbmSqlSessionFactory" />
    </bean>

    <bean id="rbmSqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"
        name="rbmSqlSessionFactory">
        <property name="dataSource" ref="rbmDataSource" />
    </bean>

    <bean id="rbmDataSource" class="org.apache.commons.dbcp.BasicDataSource"
        destroy-method="close">
        <property name="driverClassName" value="${management.db.driver}" />
        <property name="url" value="${management.db.url}" />
        <property name="username" value="${management.db.username}" />
        <property name="password" value="${management.db.password}" />
        <property name="validationQuery" value="SELECT 1" />
    </bean>
</beans>    

0 个答案:

没有答案
相关问题