• 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 就会获取哪个数据库的连接。

  • 相关阅读:
    Android Dialog
    Android中Activity和Fragment与Fragment和Fragment之前互相传值方法
    Git 常用命令
    php-tool-xhprof
    大数据
    数据库连接
    Linux架构之Nginx 负载均衡会话保持
    Linux基础之输入输出
    Linux架构之Nginx 配置文件
    Linux架构之Nginx Web基础1
  • 原文地址:https://www.cnblogs.com/liuzhenlei/p/6927051.html
Copyright © 2020-2023  润新知