spring4+mybatis3+atomikos3.9多数据源分布式事务控制配置(备用)
2017-01-18 09:37
471 查看
pom文件关键jar一览
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
xml配置
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
可参考(http://www.codexiu.cn/mysql/blog/10637/)
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>4.2.3.RELEASE</version> </dependency> <dependency> <groupId>com.atomikos</groupId> <artifactId>transactions-jdbc</artifactId> <version>3.9.3</version> </dependency> <dependency> <groupId>com.atomikos</groupId> <artifactId>transactions-jta</artifactId> <version>3.9.3</version> </dependency> <dependency> <groupId>com.atomikos</groupId> <artifactId>transactions</artifactId> <version>3.9.3</version> </dependency> <dependency> <groupId>com.atomikos</groupId> <artifactId>transactions-api</artifactId> <version>3.9.3</version> </dependency> <dependency> <groupId>com.atomikos</groupId> <artifactId>atomikos-util</artifactId> <version>3.9.3</version> </dependency> <dependency> <groupId>javax.transaction</groupId> <artifactId>jta</artifactId> <version>1.1</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.3.0</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>1.2.3</version> </dependency>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
xml配置
<!--数据源1--> <bean id="DataSourceOne" class="com.atomikos.jdbc.AtomikosDataSourceBean" destroy-method="close"> <property name="uniqueResourceName" value="one" /> <property name="xaDataSourceClassName" value="com.mysql.jdbc.jdbc2.optional.MysqlXADataSource"/> <property name="xaProperties"> <props> <prop key="url">${db.url.one}</prop> <prop key="user">${db.user.one}</prop> <prop key="password">${db.password.one}</prop> </props> </property> <property name="minPoolSize" value="5" /> <property name="maxPoolSize" value="20" /> <property name="maxIdleTime" value="60" /> <property name="reapTimeout" value="20000" /> </bean> <!--数据源2--> <bean id="DataSourceTwo" class="com.atomikos.jdbc.AtomikosDataSourceBean" destroy-method="close"> <property name="uniqueResourceName" value="two" /> <property name="xaDataSourceClassName" value="com.mysql.jdbc.jdbc2.optional.MysqlXADataSource"/> <property name="xaProperties"> <props> <prop key="url">${db.url.two}</prop> <prop key="user">${db.user.two}</prop> <prop key="password">${db.password.two}</prop> </props> </property> <property name="minPoolSize" value="5" /> <property name="maxPoolSize" value="20" /> <property name="maxIdleTime" value="60" /> <property name="reapTimeout" value="20000" /> </bean> <bean id="mysqlSessionFactory_one" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="DataSourceOne" /> <property name="mapperLocations" value="classpath*:META-INF/sqlxml/one/*.xml"/> </bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.test.dao.one"/> <property name="sqlSessionFactoryBeanName" value="mysqlSessionFactory_one"/> </bean> <bean id="mysqlSessionFactory_two" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="DataSourceTwo" /> <property name="mapperLocations" value="classpath*:META-INF/sqlxml/two/*.xml"/> </bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.test.dao.two"/> <property name="sqlSessionFactoryBeanName" value="mysqlSessionFactory_two"/> </bean> <!-- 事务配置 --> <bean id="userTransactionService" class="com.atomikos.icatch.config.UserTransactionServiceImp" init-method="init" destroy-method="shutdownForce"> <constructor-arg> <props> <prop key="com.atomikos.icatch.service">com.atomikos.icatch.standalone.UserTransactionServiceFactory </prop> </props> </constructor-arg> </bean> <bean id="atomikosTransactionManager" class="com.atomikos.icatch.jta.UserTransactionManager" init-method="init" destroy-method="close" depends-on="userTransactionService"> <property name="forceShutdown" value="false" /> </bean> <bean id="atomikosUserTransaction" class="com.atomikos.icatch.jta.UserTransactionImp" depends-on="userTransactionService"> <property name="transactionTimeout" value="300" /> </bean> <bean id="jtaTransactionManager" class="org.springframework.transaction.jta.JtaTransactionManager" depends-on="userTransactionService"> <property name="transactionManager" ref="atomikosTransactionManager" /> <property name="userTransaction" ref="atomikosUserTransaction" /> </bean> <tx:annotation-driven transaction-manager="jtaTransactionManager" proxy-target-class="true"/> <aop:aspectj-autoproxy proxy-target-class="true" expose-proxy="true"/> <tx:advice id="txAdvice" transaction-manager="jtaTransactionManager"> <tx:attributes> <tx:method name="insert*" propagation="REQUIRED"/> <tx:method name="save*" propagation="REQUIRED"/> <tx:method name="add*" propagation="REQUIRED"/> <tx:method name="create*" propagation="REQUIRED"/> <tx:method name="update*" propagation="REQUIRED"/> <tx:method name="edit*" propagation="REQUIRED"/> <tx:method name="delete*" propagation="REQUIRED"/> <tx:method name="remove*" propagation="REQUIRED"/> <tx:method name="get*" read-only="true"/> <tx:method name="find*" read-only="true"/> <tx:method name="query*" read-only="true"/> <tx:method name="*" propagation="SUPPORTS" read-only="true"/> </tx:attributes> </tx:advice> <aop:config> <aop:pointcut id="leePointcut" expression="execution(* com.test.service.impl.*Impl.*(..)) "/> <aop:advisor advice-ref="txAdvice" pointcut-ref="leePointcut"/> </aop:config>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
可参考(http://www.codexiu.cn/mysql/blog/10637/)
相关文章推荐
- spring4+mybatis3+atomikos3.9多数据源分布式事务控制
- spring-boot入门(七)atomikos+druid+多数据源下的分布式事务配置
- Spring多数据源分布式事务管理/springmvc+spring+atomikos[jta]+druid+mybatis
- Spring配置多数据源以及基于Atomikos的事务一致性配置
- Spring3.0+Hibernate+Atomikos集成构建JTA的分布式事务--解决多数据源跨库事务
- [tomcat] spring2.5.6 + hiberante3.1.3 + atomikos3.8.0 多数据源事务配置
- springMVC+myBatis+Atomikos 多数据源分布式事务 oracle 、mysql 、sqlserver 数据源
- Spring + Atomikos配置多个数据源,并且管理事务
- atomikos + druid + spring 多数据源分布式事务
- Spring多数据源分布式事务管理/springmvc+spring+atomikos[jta]+druid+mybatis
- Spring3.0+Hibernate+Atomikos集成构建JTA的分布式事务--解决多数据源跨库事务
- Spring+Hibernate+Atomikos集成构建JTA的分布式事务--解决多数据源跨库事务
- 事务说明[tomcat] spring2.5.6 + hiberante3.1.3 + atomikos3.8.0 多数据源事务配置
- Spring+Hibernate+Atomikos集成构建JTA的分布式事务--解决多数据源跨库事务
- SpringBoot系列七:SpringBoot 整合 MyBatis(配置 druid 数据源、配置 MyBatis、事务控制、druid 监控)
- Spring分布式事务配置(atomikos)
- Spring3.0+Hibernate+Atomikos多数据源分布式事务管理
- spring 事物控制---多数据源与 atomikos 分布式事务配置(接之前未完成的部分)
- Java事务处理全解析(八)——分布式事务入门例子(Spring+JTA+Atomikos+Hibernate+JMS)
- spring数据源配置及事务管理--jdbc