<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd"
default-lazy-init="true">
<!-- 1. JOTM本地实例 -->
<bean id="jotm"
class="org.springframework.transaction.jta.JotmFactoryBean" />
<!-- 2. JTA事务管理器 -->
<bean id="txManager"
class="org.springframework.transaction.jta.JtaTransactionManager">
<!-- 2.1:指定userTransaction属性 -->
<property name="userTransaction" ref="jotm" />
</bean>
<!-- 3. XAPool配置,内部包含了一个XA数据源,对应user数据库 -->
<bean id="dataDataSource"
class="org.enhydra.jdbc.pool.StandardXAPoolDataSource"
destroy-method="shutdown">
<property name="dataSource">
<!-- 3.1:内部XA数据源 -->
<bean class="org.enhydra.jdbc.standard.StandardXADataSource"
destroy-method="shutdown">
<property name="transactionManager" ref="jotm" />
<property name="driverName"
value="oracle.jdbc.driver.OracleDriver" />
<property name="url"
value="jdbc:oracle:thin:@127.0.0.1:1521:cqsdb" />
</bean>
</property>
<property name="user" value="data" />
<property name="password" value="data" />
</bean>
<!-- 4. 配置另一个XAPool,对应address数据库 -->
<bean id="centerDataSource"
class="org.enhydra.jdbc.pool.StandardXAPoolDataSource"
destroy-method="shutdown">
<property name="dataSource">
<bean class="org.enhydra.jdbc.standard.StandardXADataSource"
destroy-method="shutdown">
<property name="transactionManager" ref="jotm" />
<property name="driverName"
value="oracle.jdbc.driver.OracleDriver" />
<property name="url"
value="jdbc:oracle:thin:@127.0.0.1:1521:cqsdb" />
</bean>
</property>
<property name="user" value="datacenter" />
<property name="password" value="datacenter" />
</bean>
<!-- 5. 配置对应userDataSource数据源的userSessionFactory -->
<bean id="dataSessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref local="dataDataSource" />
</property>
<property name="lobHandler" ref="oracleLobHandler" /><!-- for lob proc -->
<property name="mappingDirectoryLocations">
<list>
<value>classpath:com/euler/orm</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.Oracle9Dialect
</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.jdbc.batch_size">50</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
<prop key="hibernate.cache.provider_class">
org.hibernate.cache.EhCacheProvider
</prop>
</props>
</property>
<!-- 5.1 这里不要配,否则会报Could not find UserTransaction in JNDI [java:comp/UserTransaction]
<property name="jtaTransactionManager">
<ref bean="jotm" />
</property>
-->
</bean>
<!-- 6. 配置对应addressDataSource数据源的addressSessionFactory -->
<bean id="centerSessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref local="centerDataSource" />
</property>
<property name="lobHandler" ref="oracleLobHandler" /><!-- for lob proc -->
<property name="mappingDirectoryLocations">
<list>
<value>classpath:com/euler/orm</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.Oracle9Dialect
</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.jdbc.batch_size">50</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
<prop key="hibernate.cache.provider_class">
org.hibernate.cache.EhCacheProvider
</prop>
</props>
</property>
<!-- 6.1 这里不要配,否则会报Could not find UserTransaction in JNDI [java:comp/UserTransaction]
<property name="jtaTransactionManager">
<ref bean="jotm" />
</property>
-->
</bean>
<!-- 7. 对应userSessionFactory数据源的userDao -->
<bean id="BaseHibernateDAO"
class="com.zjwy.dao.impl.BaseHibernateDAO">
<property name="sessionFactory">
<ref bean="centerSessionFactory"></ref>
</property>
</bean>
<!-- dao实现类 -->
<bean id="BaseHibernateDAOdata"
class="com.zjwy.dao.impl.BaseHibernateDAOdata">
<property name="sessionFactory">
<ref bean="dataSessionFactory"></ref>
</property>
</bean>
<bean id="ExtHibernateDAO"
class="com.zjwy.dao.impl.ExtHibernateDAO">
<property name="sessionFactory">
<ref bean="centerSessionFactory"></ref>
</property>
</bean>
<!-- 9. 进行跨数据库JTA事务的业务类 -->
<bean id="AbstractService"
class="com.euler.services.AbstractService" abstract="true">
<property name="dao" ref="BaseHibernateDAO"></property>
<property name="datadao" ref="BaseHibernateDAOdata"></property>
</bean>
<!-- 10. 事务拦截器 -->
<bean id="transactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager" ref="txManager" />
<property name="transactionAttributes">
<props>
<prop key="*">-Exception</prop>
</props>
</property>
</bean>
<!-- 11. 事务增强器 -->
<bean id="transactionAdvisor"
class="org.springframework.transaction.interceptor.TransactionAttributeSourceAdvisor">
<property name="transactionInterceptor"
ref="transactionInterceptor" />
</bean>
<!-- 12. 自动代理 -->
<bean id="beanproxy"
class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<!-- <value>execution(* com.euler.services..*.*(..))</value> -->
<list>
<!-- 配置事物范围 -->
<value>*SrvImpl</value>
<value>AutoSynchronizationDatasService</value>
<value>EulerDBSynSvrImp</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>transactionAdvisor</value>
</list>
</property>
</bean>
<bean id="oracleLobHandler"
class="org.springframework.jdbc.support.lob.OracleLobHandler">
<property name="nativeJdbcExtractor">
<ref local="nativeJdbcExtractor" />
</property>
</bean>
<bean id="nativeJdbcExtractor"
class="org.springframework.jdbc.support.nativejdbc.C3P0NativeJdbcExtractor">
</bean>
</beans>
Tomcat lib 下 需要一个 javaee.jar
分享到:
相关推荐
Jtom(java open Transaction Manager)是java写的事务管理器并实现了jta接口,而且是开源项目。
在Tomcat6中配置好的java工程已经配置好JTOM的DataSource和UserTransaction,打包下载.请自行配置数据库与补全Tomcat6中的公共文件.然后就可以直接访问页页http://127.0.0.1:8080/DaoTemplate_my/books.jsp和...
Spring多数据源配置_分布式数据 Tomcat服务器下的多数据源配置详情 一、环境及框架 Tomcat+spring+hibernate+jotm,还有就是struts、Oracle等 二、需求说明 系统里有2套不同网域的oracle数据库,之间的数据需要进行...
spring+hibernate+jtom demospring+hibernate+jtom demo
jotm 所需JAR包,以及所有jtom的使用文档,比较全面
NULL 博文链接:https://hwhuang.iteye.com/blog/642305
如何处理跨库事物:spring + jtom 的jta事务是个很好的选择. 这个源码示例非常不错,包括所有的源码和jar包,下载后eclipse 或 myeclipse 导入就能用。 里面有详细的说明和注释,欢迎下载传播。有问题请在评价中...
JOTM 是一个基于Java开放源代码的事务处理管理器。它遵循JTA APIs规范与Business Transaction Protocol(BTP)规范以提供了对Web Service的支持。
jotm 所需JAR包,以及所有jtom的使用文档,比较全面
8、默认登录账号密码:admin 123456 密码如果不对,就是 jtom123456 登录后 自己 修改一下 文件包含以下文件: 1、database(数据库设计文件) 2、ruoyi-master(后端代码) 3、ruoyi-ui(管理后台前端代码) ...