ssm 配置多个数据源

  1 <?xml version="1.0" encoding="UTF-8"?>
  2 <beans  xmlns="http://www.springframework.org/schema/beans"
  3     xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
  4     xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:aop="http://www.springframework.org/schema/aop"
  5     xmlns:tx="http://www.springframework.org/schema/tx" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  6     xsi:schemaLocation="http://www.springframework.org/schema/beans
  7     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
  8     http://www.springframework.org/schema/context
  9     http://www.springframework.org/schema/context/spring-context.xsd    
 10     http://www.springframework.org/schema/mvc
 11     http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
 12     http://www.springframework.org/schema/aop 
 13     http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 
 14     http://www.springframework.org/schema/tx  
 15     http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
 16 
 17 
 18 
 19     <!-- 加载jdbc.properties文件   -->
 20     <bean id="propertyConfigurer"
 21         class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
 22         <property name="locations">
 23             <list>
 24                 <value>classpath*:config/datasource.properties</value>
 25             </list>
 26         </property>
 27     </bean>
 28 
 29     <!-- 配置DataSource数据源 -->
 30 <!--      <bean id="dataSource"  -->
 31 <!--          class="org.springframework.jdbc.datasource.DriverManagerDataSource">  -->
 32 <!--          <property name="driverClassName" value="${driver}" />  -->
 33 <!--          <property name="url" value="${url}" />  -->
 34 <!--          <property name="username" value="${username}" />  -->
 35 <!--          <property name="password" value="${password}" />  -->
 36 <!--      </bean>  -->
 37     
 38     <!-- JNDI连接池配置(jboss:java:/socket  tomcat : java:comp/env/jdbc/socket)-->
 39     <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
 40         <property name="jndiName">
 41             <value>java:comp/env/jdbc/socket</value>
 42         </property>
 43     </bean>
 44     
 45     
 46     
 47 
 48     <!-- 配置Mybatis SqlSessionFactoryBean -->
 49     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
 50         <property name="dataSource" ref="dataSource" />
 51         <property name="configLocation" value="classpath:config/mybatis.xml" />
 52         <!-- mapper和resultmap配置路径 -->
 53         <property name="mapperLocations">
 54             <list>
 55                 <!-- 表示在com/smart/包或以下所有目录中,以_sql.xml结尾所有文件 -->
 56                 <value>classpath*:com/bd/**/*_sql.xml</value>
 57             </list>
 58         </property>
 59     </bean>
 60 
 61     <!-- 框架 -->
 62     <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
 63         <constructor-arg index="0" ref="sqlSessionFactory" />
 64     </bean>
 65     
 66     
 67     <bean id="dataSourceHr" class="org.springframework.jndi.JndiObjectFactoryBean">
 68         <property name="jndiName">
 69             <value>java:comp/env/jdbc/hr</value>
 70         </property>
 71     </bean>
 72 
 73 
 74     <!-- 配置Mybatis SqlSessionFactoryBean -->
 75     <bean id="sqlSessionFactoryHr" class="org.mybatis.spring.SqlSessionFactoryBean">
 76         <property name="dataSource" ref="dataSourceHr" />
 77         <property name="configLocation" value="classpath:config/mybatis.xml" />
 78         <!-- mapper和resultmap配置路径 -->
 79         <property name="mapperLocations">
 80             <list>
 81                 <!-- 表示在com/smart/包或以下所有目录中,以_sql.xml结尾所有文件 -->
 82                 <value>classpath*:com/bd/**/*_sql.xml</value>
 83             </list>
 84         </property>
 85     </bean>
 86 
 87     <!-- 框架 -->
 88     <bean id="sqlSessionHr" class="org.mybatis.spring.SqlSessionTemplate">
 89         <constructor-arg index="0" ref="sqlSessionFactoryHr" />
 90     </bean>
 91     
 92     
 93     
 94     <bean id="batisDao" class="com.bd.core.base.dao.mybatis.BatisDaoImpl">
 95         <property name="sqlSession">
 96             <ref bean="sqlSession" />
 97         </property>
 98         <property name="sqlSessionHr">
 99             <ref bean="sqlSessionHr" />
100         </property>
101     </bean>
102     
103     <!--事务相关控制-->
104     <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">     
105           <property name="dataSource" ref="dataSource"></property>
106     </bean>  
107     
108 
109 
110     <tx:advice id="txAdvice" transaction-manager="transactionManager">
111         <tx:attributes>
112             <tx:method name="get*" propagation="REQUIRED"
113                 rollback-for="Exception,BusinessException" />
114             <tx:method name="find*" propagation="REQUIRED"
115                 rollback-for="Exception,BusinessException" />
116             <tx:method name="query*" propagation="REQUIRED"
117                 rollback-for="Exception,BusinessException" />
118             <tx:method name="add*" propagation="REQUIRED" rollback-for="Exception,BusinessException" />
119             <tx:method name="save*" propagation="REQUIRED"
120                 rollback-for="Exception,BusinessException" />
121             <tx:method name="update*" propagation="REQUIRED"
122                 rollback-for="Exception,BusinessException" />
123             <tx:method name="edit*" propagation="REQUIRED"
124                 rollback-for="Exception,BusinessException" />
125             <tx:method name="delete*" propagation="REQUIRED"
126                 rollback-for="Exception,BusinessException" />
127             <tx:method name="remove*" propagation="REQUIRED"
128                 rollback-for="Exception,BusinessException" />
129             <tx:method name="audit*" propagation="REQUIRED"
130                 rollback-for="Exception,BusinessException" />
131             <tx:method name="modify*" propagation="REQUIRED"
132                 rollback-for="Exception,BusinessException" />
133         </tx:attributes>
134     </tx:advice>
135     <aop:config>
136         <aop:pointcut id="interceptorPointCuts"
137             expression="execution(* com.bd.smart.*.*.service..*.*(..)) || execution(* com.bd.smart.*.service..*.*(..))" />
138         <aop:advisor advice-ref="txAdvice" pointcut-ref="interceptorPointCuts" />
139     </aop:config>
140 
141 
142     
143     
144     
145 </beans>

配置两个数据源和session工厂类和session对象,只需在dao的bean 中注入这些session对象,当调用的是哪个session 就会获取哪个数据库的连接。

原文地址:https://www.cnblogs.com/liuzhenlei/p/6927051.html