`
conkeyn
  • 浏览: 1504508 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

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

 
阅读更多

 

一、首先配置hibernate数据源:

<?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、其他数据源配置-->  
.................  
 
    <?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):

    <!--1、oracle数据源 事务管理拦截器 -->
<tx:advice id="oracleTxAdvice" transaction-manager="oracletransactionManager">
	<tx:attributes>
		<tx:method name="find*" read-only="true" />
		<tx:method name="get*" read-only="true" />
		<tx:method name="notx*" propagation="NEVER" />
		<tx:method name="*" rollback-for="自定义Exception" />
	</tx:attributes>
</tx:advice>
<!--2、sqlserver数据源 事务管理拦截器 -->
<tx:advice id="sqlserverTxAdvice" transaction-manager="sqlservertransactionManager">
	<tx:attributes>
		<tx:method name="find*" read-only="true" />
		<tx:method name="get*" read-only="true" />
		<tx:method name="notx*" propagation="NEVER" />
		<tx:method name="*" rollback-for="自定义Exception" />
	</tx:attributes>
</tx:advice>
<!--3、其他数据源 事务管理拦截器 -->
.................
<!--配置多数据源的事务拦截器 -->
<bean id="serviceAutoProxyCreator"
	class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
	<property name="beanNames">
		<list>
			<value>*Service</value>
		</list>
	</property>
	<property name="interceptorNames">
		<list>
			<value>oracleTxAdvice</value>
			<value>sqlServerTxAdvice</value>
			<value>XXXXXTxAdvice</value>
		</list>
	</property>
</bean>  
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics