- 浏览: 380547 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (209)
- db2 (4)
- oracle (1)
- sqlserver (16)
- java (54)
- jdbc (3)
- html、js (21)
- MQ、MB (6)
- uml (3)
- 格言 (7)
- 笑话 (3)
- 管理 (5)
- note (10)
- hibernate (1)
- 设计模式 (4)
- win8 (5)
- postgre (2)
- cxf (3)
- MyBatis (4)
- tomcat (9)
- servlet (2)
- ant (2)
- spring (5)
- windows (3)
- linux (7)
- struts2 (2)
- android (2)
- eclipse (1)
- drools (1)
- jmx (2)
- c++ (3)
- html、js、JSP (1)
- mysql (1)
- redis (1)
- 架构 (1)
最新评论
-
onlyor:
灰太狼1991 写道很受用,请教一下博主,mybatis模糊查 ...
MyBatis模糊查询 -
灰太狼1991:
很受用,请教一下博主,mybatis模糊查询是不是和版本也有关 ...
MyBatis模糊查询 -
zzgvictory:
你写的么,很美啊
js 画 玫瑰花 -
onlyor:
里面的算法值得研究啊
js 画 玫瑰花 -
bjqincy:
用 org.joda System.out.println(& ...
Java 获取 一个月有多少周
<?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:context="http://www.springframework.org/schema/context"
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-2.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd"
default-lazy-init="true">
<!-- JOTM 数据源
<bean id="jotm" class="com.demo.spring.jotm.jta.JotmFactoryBean" />
<bean id="springTransactionManager" class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="userTransaction" ref="jotm" />
</bean>
<bean id="myDataSource1" class="org.enhydra.jdbc.pool.StandardXAPoolDataSource">
<property name="dataSource">
<bean class="org.enhydra.jdbc.standard.StandardXADataSource">
<property name="transactionManager">
<ref local="jotm" />
</property>
<property name="driverName">
<value>org.postgresql.Driver</value>
</property>
<property name="url">
<value>jdbc:postgresql://127.0.0.1:5432/test</value>
</property>
</bean>
</property>
<property name="user">
<value>postgres</value>
</property>
<property name="password">
<value>root</value>
</property>
<property name="maxSize">
<value>5</value>
</property>
<property name="minSize">
<value>2</value>
</property>
</bean>
<bean id="myDataSource2" class="org.enhydra.jdbc.pool.StandardXAPoolDataSource">
<property name="dataSource">
<bean class="org.enhydra.jdbc.standard.StandardXADataSource">
<property name="transactionManager">
<ref local="jotm" />
</property>
<property name="driverName">
<value>org.postgresql.Driver</value>
</property>
<property name="url">
<value>jdbc:postgresql://127.0.0.1:5432/news</value>
</property>
</bean>
</property>
<property name="user">
<value>postgres</value>
</property>
<property name="password">
<value>root</value>
</property>
<property name="maxSize">
<value>5</value>
</property>
<property name="minSize">
<value>2</value>
</property>
</bean>
-->
<!-- ATOMIKOS mysql 数据源
<bean id="myDataSource1" class="com.atomikos.jdbc.AtomikosDataSourceBean">
<property name="uniqueResourceName">
<value>MYSQL/test</value>
</property>
<property name="xaDataSourceClassName">
<value>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</value>
</property>
<property name="xaProperties">
<props>
<prop key="user">root</prop>
<prop key="password">root</prop>
<prop key="URL">jdbc:mysql://127.0.0.1:3306/test</prop>
</props>
</property>
</bean>
<bean id="myDataSource2" class="com.atomikos.jdbc.AtomikosDataSourceBean">
<property name="uniqueResourceName">
<value>MYSQL/news</value>
</property>
<property name="xaDataSourceClassName">
<value>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</value>
</property>
<property name="xaProperties">
<props>
<prop key="user">root</prop>
<prop key="password">root</prop>
<prop key="URL">jdbc:mysql://127.0.0.1:3306/news</prop>
</props>
</property>
</bean>
-->
<!-- ATOMIKOS postgres 数据源 -->
<bean id="myDataSource1" class="com.atomikos.jdbc.AtomikosDataSourceBean">
<property name="uniqueResourceName">
<value>postgre/test</value>
</property>
<property name="xaDataSourceClassName">
<value>org.postgresql.xa.PGXADataSource</value>
</property>
<property name="xaProperties">
<props>
<prop key="user">postgres</prop>
<prop key="password">root</prop>
<prop key="databaseName">test</prop>
<prop key="serverName">127.0.0.1</prop>
<prop key="portNumber">5432</prop>
</props>
</property>
</bean>
<bean id="myDataSource2" class="com.atomikos.jdbc.AtomikosDataSourceBean">
<property name="uniqueResourceName">
<value>postgre/news</value>
</property>
<property name="xaDataSourceClassName">
<value>org.postgresql.xa.PGXADataSource</value>
</property>
<property name="xaProperties">
<props>
<prop key="user">postgres</prop>
<prop key="password">root</prop>
<prop key="databaseName">news</prop>
<prop key="serverName">127.0.0.1</prop>
<prop key="portNumber">5432</prop>
</props>
</property>
</bean>
<bean id="sqlSessionFactory1" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation" value="classpath:config1.xml" />
<property name="dataSource" ref="myDataSource1" />
</bean>
<bean id="sqlSessionFactory2" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation" value="classpath:config2.xml" />
<property name="dataSource" ref="myDataSource2" />
</bean>
<bean id="userDAO" class="com.anxin.dao.impl.UserDAOImpl">
<property name="sqlSessionFactory" ref="sqlSessionFactory1" />
</bean>
<bean id="studentDAO" class="com.anxin.dao.impl.StudentDAOImpl">
<property name="sqlSessionFactory" ref="sqlSessionFactory2" />
</bean>
<bean id="studentService" class="com.anxin.service.impl.StudentServiceImpl">
<property name="dao" ref="studentDAO" />
</bean>
<bean id="userService" class="com.anxin.service.impl.UserServiceImpl">
<property name="dao" ref="userDAO" />
</bean>
<bean id="complexService" class="com.anxin.service.impl.ComplexServiceImpl">
<property name="userDao" ref="userDAO" />
<property name="studentDao" ref="studentDAO" />
</bean>
<!-- atomikosTransactionManager -->
<bean id="atomikosTransactionManager" class="com.atomikos.icatch.jta.UserTransactionManager"
init-method="init" destroy-method="close">
<property name="forceShutdown">
<value>true</value>
</property>
</bean>
<bean id="atomikosUserTransaction" class="com.atomikos.icatch.jta.UserTransactionImp">
<property name="transactionTimeout">
<value>300</value>
</property>
</bean>
<bean id="springTransactionManager" class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="transactionManager">
<ref bean="atomikosTransactionManager" />
</property>
<property name="userTransaction">
<ref bean="atomikosUserTransaction" />
</property>
</bean>
<aop:config>
<aop:pointcut id="pc" expression="execution(* com.anxin.service.*.*(..))" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="pc" />
</aop:config>
<tx:advice id="txAdvice" transaction-manager="springTransactionManager">
<tx:attributes>
<tx:method name="get*" propagation="REQUIRED" read-only="true" />
<tx:method name="find*" propagation="REQUIRED" read-only="true" />
<tx:method name="has*" propagation="REQUIRED" read-only="true" />
<tx:method name="locate*" propagation="REQUIRED" read-only="true" />
<tx:method name="*" propagation="REQUIRED" rollback-for="Exception" />
</tx:attributes>
</tx:advice>
<!-- 手动代理
<bean id="transactionProxyFactoryBean" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
abstract="true">
<property name="transactionManager">
<ref bean="springTransactionManager" />
</property>
<property name="transactionAttributes">
<props>
<prop key="save*">PROPAGATION_REQUIRED,-Exception</prop>
</props>
</property>
</bean>
<bean id="complexServiceProxy" parent="transactionProxyFactoryBean">
<property name="target">
<ref bean="complexService" />
</property>
</bean>
-->
</beans>
- jta.jar (17 KB)
- 下载次数: 28
发表评论
-
多线程之Java线程阻塞与唤醒
2017-08-15 01:38 535线程的阻塞和唤醒在多线程并发过程中是一个关键点,当线程数量达 ... -
diffcount 代码差异统计工具
2016-08-12 18:11 1610使用diffcount,可以直接统计前后两个工程中,增加、 ... -
solr5 配置 与 创建core
2015-12-31 09:49 34191. 准备安装包(保证tomat能正常启动) so ... -
HTTP访问的两种方式(HttpClient和HttpURLConnection)
2015-12-30 11:58 2879直接上代码 使用HttpClient Name ... -
maven 使用slf4j与logback结合
2015-10-31 21:10 1384<dependency> & ... -
WAS性能优化分析工具
2015-10-23 14:40 752WAS性能优化分析工具被分析的文件heapdump165490 ... -
异常分类使用
2015-05-04 16:23 576异常分类使用 1.RuntimeException, ... -
一个java枚举的实例
2015-05-04 16:20 698一个java枚举的实例,直接上代码。 /** * ... -
java枚举实例
2015-05-04 16:18 504直接上代码 /** * * 〈枚举测试〉& ... -
POI excel 单元个的内容 自适应行高
2014-12-05 11:03 16845POI excel 单元个的内容 自适应行高 pub ... -
POI的一些操作 获取、删除区域Region 删除多行
2014-12-04 17:02 35711 通过行列获取区域 /** * 获取区域 ... -
Java 排序(转)
2014-11-27 13:51 722排序 public class Sort { ... -
log4j.properties
2014-11-27 13:26 890log4j.rootLogger=DEBUG,CONSOLE, ... -
corba,ejb ,webservice,rest分布式 区别
2014-09-30 11:04 978Corba,还是EJB,都有一些共同点:1) 通过专有的网络协 ... -
JAVA注解总结
2014-09-25 10:21 659最近打算搞清楚以下问题:1. 注解的原理与使用 2. Ja ... -
在同一个类中,线程资源竞争
2014-09-02 08:55 953/** * 在同一个类中,线程资源竞争 ... -
linux下Java字体乱码(解决图像中中文乱码)
2014-08-12 16:27 23771在Java中可以使用如下判断支持的字体 GraphicsE ... -
DBCP 数据源 下载jar包
2014-08-01 13:36 2474一.DBCP 是 Apache 软件基金组织下的开源连接池 ... -
RMI 实例
2014-06-05 09:39 512RMI 实例 package rmi.train; ... -
基于httpclient-4.3 和 4.1的编写小例子
2014-05-29 19:45 1994基于httpclient-4.3 和 4.1的编写小例子 ...
相关推荐
4. 配置数据源:为每个参与分布式事务的数据源创建AtomikosManagedDataSource实例,并在Spring配置中声明。 5. 配置MyBatis:配置MyBatis的SqlSessionFactory,使用Atomikos数据源,并在Mapper配置中启用事务。 6....
同时,你需要在MyBatis的配置中启用JTA事务管理,确保Spring和Atomikos能够协同工作。这样,当你的应用执行跨库操作时,Atomikos会自动管理这些操作,保证其在分布式环境下的原子性、一致性、隔离性和持久性。 综上...
综上所述,Spring、MyBatis和Atomikos的集成主要涉及JTA标准的运用、Atomikos的配置以及Spring的事务管理。通过这种方式,可以实现在分布式环境下的事务一致性,确保多数据源操作的正确性。在实际开发中,根据具体的...
- 在Spring配置文件中声明SqlSessionTemplate或SqlSessionDaoSupport,这两个类是Spring对Mybatis的进一步封装,提供了事务管理功能。 2. **Atomikos的引入** - Atomikos提供了UserTransaction接口,用于开始、...
在Spring配置中,可以将MyBatis的SqlSessionFactory配置为受Spring管理,并开启事务支持。这样,当一个事务开始时,Spring会自动管理SqlSessionFactory的打开和关闭,以及在事务边界内的SQL执行。 为了使用Atomikos...
本教程将探讨如何利用Spring Boot、Druid、Mybatis以及Atomikos来配置多数据源并实现分布式事务。 首先,Spring Boot是Java生态系统中的一个流行框架,它简化了设置和配置过程,使得开发人员可以快速启动新项目。在...
本篇文档主要讲述如何使用Spring Boot结合MyBatis、JTA(Java Transaction API)以及Atomikos实现多数据源的事务管理。 ### Spring Boot框架 Spring Boot是Spring家族中的一个全新框架,用于简化新Spring应用的...
Spring Boot:mybatis-plus + atomikos + druid 实现不同实例数据库的多数据源配置和分布式事务管理(demo项目),想到工作上可能会用到多数据源,但是自己在这方面并不是很熟悉,于是在网上查阅了很多文章,结果...
NULL 博文链接:https://lizhao6210-126-com.iteye.com/blog/1958831
本示例中的"spring、mybatis、atomikos实现DB2、Mysql多数据源事务demo"提供了一个实用的框架,演示了如何在Spring框架中结合MyBatis持久层框架以及Atomikos事务管理器来处理来自DB2和MySQL两个不同数据库的数据源...
1. 配置Atomikos:在Spring配置文件中引入Atomikos的相关依赖,配置两个UserTransaction和XAPool,分别对应两个数据源。 2. 定义数据源:为每个数据库创建一个DataSource bean,并配置相应的数据库连接信息。 3. ...
然后,对于MyBatis,我们需要配置SqlSessionFactoryBean,并设置其数据源为Atomikos的JTA数据源。这样,MyBatis的操作将在同一个全局事务内进行: ```xml <bean id="sqlSessionFactory" class="org.mybatis.spring....
- 如何在Spring配置文件中设置JTA事务管理器。 - MyBatis是如何与JTA配合进行事务控制的,比如在XML映射文件或Mapper接口中定义的事务边界。 - JTA事务的开始、提交、回滚过程,以及异常传播规则。 - 如何处理...
后端基于springmybatis的微信小程序商城后端基于springmybatis的微信小程序商城后端基于springmybatis的微信小程序商城后端基于springmybatis的微信小程序商城后端基于springmybatis的微信小程序商城后端基于spring...
这个项目可能包含了Spring配置文件,定义了数据源和事务管理器;Mybatis的相关配置,如Mapper接口和XML配置文件;以及业务逻辑代码,展示了如何在Spring和Mybatis的基础上,利用Atomikos处理分布式事务。 总的来说...
2. 集成Atomikos:在Spring配置中引入Atomikos的事务管理器,配置全局事务超时、事务日志路径等参数,确保Atomikos可以在多数据源环境下正确处理分布式事务。 3. 配置MyBatis:将MyBatis的SqlSessionFactory与...
6. 配置Spring与MyBatis的集成:使用MyBatis-Spring的SqlSessionTemplate或SqlSessionFactoryBean。 在提供的压缩包中,文件可能包括Spring、SpringMVC和MyBatis的jar包,以及相关的配置文件,例如spring-context....
Spring框架在企业级Java应用中广泛用于实现...总的来说,Spring配置JTA事务管理是一项关键任务,它确保了在分布式环境下的数据一致性。理解并正确配置JTA事务管理,能够让你的应用程序更加健壮,适应复杂的企业级需求。
接下来,重点讲解了Spring与MyBatis的集成过程,包括Spring的DataSource配置、事务管理、以及MyBatis-Spring的使用,让读者了解如何在Spring环境中优雅地使用MyBatis进行数据访问。此外,书中还会涉及Spring MVC的...