如何在spring配置多个Hibernate数据源链接

一、首先配置hibernate数据源:

Xml代码 复制代码
  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <!DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN2.0//EN""http://www.springframework.org/dtd/spring-beans-2.0.dtd">
  3. <beans>
  4. <!--1、Oracle数据源配置-->
  5. <beanid="oraclesessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  6. <propertyname="configLocation">
  7. <value>WEB-INF/classes/oracle-h.cfg.xml</value>
  8. </property>
  9. </bean>
  10. <beanid="oracletransactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  11. <propertyname="sessionFactory">
  12. <reflocal="sessionFactory"/>
  13. </property>
  14. </bean>
  15. <!--2、SQLServer数据源配置-->
  16. <beanid="sqlServersessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
  17. <propertyname="configLocation">
  18. <value>WEB-INF/classes/sqlserver-h.cfg.xml</value>
  19. </property>
  20. </bean>
  21. <beanid="sqlServerTransactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  22. <propertyname="sessionFactory">
  23. <reflocal="sqlServersessionFactory"/>
  24. </property>
  25. </bean>
  26. <!--3、其他数据源配置-->
  27. .................
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
  <!--1、Oracle 数据源配置-->
  <bean id="oraclesessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="configLocation">
      <value>WEB-INF/classes/oracle-h.cfg.xml</value>
    </property>
  </bean>
  <bean id="oracletransactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory">
      <ref local="sessionFactory" />
    </property>
  </bean>
<!--2、SQLServer 数据源配置-->
  <bean id="sqlServersessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="configLocation">
      <value>WEB-INF/classes/sqlserver-h.cfg.xml</value>
    </property>
  </bean>
  <bean id="sqlServerTransactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory">
      <ref local="sqlServersessionFactory" />
    </property>
  </bean>
<!--3、其他数据源配置-->
.................

2、配置spring的事务拦截器(AOP):

Xml代码 复制代码
  1. <!--1、oracle数据源事务管理拦截器-->
  2. <tx:adviceid="oracleTxAdvice"transaction-manager="oracletransactionManager">
  3. <tx:attributes>
  4. <tx:methodname="find*"read-only="true"/>
  5. <tx:methodname="get*"read-only="true"/><tx:methodname="notx*"propagation="NEVER"/>
  6. <tx:methodname="*"rollback-for="自定义Exception"/>
  7. </tx:attributes>
  8. </tx:advice>
  9. <!--2、sqlserver数据源事务管理拦截器-->
  10. <tx:adviceid="sqlserverTxAdvice"transaction-manager="sqlservertransactionManager">
  11. <tx:attributes>
  12. <tx:methodname="find*"read-only="true"/>
  13. <tx:methodname="get*"read-only="true"/><tx:methodname="notx*"propagation="NEVER"/>
  14. <tx:methodname="*"rollback-for="自定义Exception"/>
  15. </tx:attributes>
  16. </tx:advice>
  17. <!--3、其他数据源事务管理拦截器-->
  18. .................
  19. <!--配置多数据源的事务拦截器-->
  20. <beanid="serviceAutoProxyCreator"class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
  21. <propertyname="beanNames">
  22. <list>
  23. <value>*Service</value>
  24. </list>
  25. </property>
  26. <propertyname="interceptorNames">
  27. <list>
  28. <value>oracleTxAdvice</value>
  29. <value>sqlServerTxAdvice</value>
  30. <value>XXXXXTxAdvice</value>
  31. </list>
  32. </property>
  33. </bean>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值