文档章节

Spring Boot 多库分布式事务,最简配置,没有之一

边鹏_尛爺鑫
 边鹏_尛爺鑫
发布于 2018/01/20 18:54
字数 395
阅读 1784
收藏 15

Spring Boot 多库分布式事务,最简配置

上一篇文章中,我就对spring boot 整合mysql,Druid,atomikos,出了一个方案,但是相对还是代码比较多,但是这个对版本冲突,不兼容的影响较小,下面说说我认为最简单的配置:

1、加入核心包pom.xml

<dependency>
	<groupId>org.mybatis.spring.boot</groupId>
	<artifactId>mybatis-spring-boot-starter</artifactId>
	<version>${mybatis-spring-boot-starter.version}</version>
</dependency>
<!-- 阿里 连接池 -->
<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>druid</artifactId>
	<version>${druid.version}</version>
</dependency>
<!--分布式事务支持 -->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-jta-atomikos</artifactId>
</dependency>

2、application.yml

spring:
  jta:
    enabled: true
    service: com.atomikos.icatch.standalone.UserTransactionServiceFactory
    max-actives: 200
    enable-logging: false
    atomikos: 
      datasource:
        oneData:
          unique-resource-name: dataSourceOne
          xa-data-source-class-name: com.alibaba.druid.pool.xa.DruidXADataSource
          xa-properties:
            driverClassName: com.mysql.jdbc.Driver
            username: root
            url: jdbc:mysql://192.168.1.206:3306/testTwo?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&failOverReadOnly=false
            password: "1234"
        twoData:
          unique-resource-name: dataSourceTwo
          xa-data-source-class-name: com.alibaba.druid.pool.xa.DruidXADataSource
          xa-properties:
            driverClassName: com.mysql.jdbc.Driver
            username: root
            url: jdbc:mysql://192.168.1.206:3306/testTwo?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&failOverReadOnly=false
            password: "1234"
logging:
  level:
    com.xin.dream.one.dao: debug
    com.xin.dream.two.dao: debug
    

3、配置DataSource一

@Configuration
@MapperScan(basePackages = "com.xin.dream.one.dao", sqlSessionFactoryRef="oneSqlSessionFactory")
public class OneDatabaseConfig {
	
	@Primary
	@Bean(name = "oneDataSource", destroyMethod = "close")
	@ConfigurationProperties(prefix = "spring.jta.atomikos.datasource.oneData")
	public DataSource oneDataSource() {
		return new AtomikosDataSourceBean();
	}

	@Primary
	@Bean(name = "oneSqlSessionFactory")
	public SqlSessionFactory oneSqlSessionFactory(@Qualifier("oneDataSource") DataSource oneDataSource)throws Exception {
		SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
		bean.setDataSource(oneDataSource);
		ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
		bean.setMapperLocations(resolver.getResources("classpath:com/xin/dream/one/mapper/*.xml"));
		return bean.getObject();
	}
}

敲黑板了哦:DataSource其它数据源同上,不过不能要@Primary注解,数据库的配置根据自己的需求添加。
坑来了:如果你的数据库密码是纯数字,要加引号如:“1234”,不然会报错=数据类型不匹配。
PS:这个配置也木有加sqlsessiontemplate哈,不过还是建议加。

© 著作权归作者所有

共有 人打赏支持
边鹏_尛爺鑫
粉丝 29
博文 32
码字总数 25997
作品 0
成都
程序员
私信 提问
加载中

评论(9)

边鹏_尛爺鑫
边鹏_尛爺鑫

引用来自“成龙哥哥”的评论

这是我搭建的项目
https://github.com/clong1995/test-master2.git

引用来自“边鹏_尛爺鑫”的评论

我空余时间,些一个springboot 2.0的文章,你关注一下

引用来自“边鹏_尛爺鑫”的评论

我看了一下2.0的源码,差不多,你再配置中只是不需要service、max-activese、nable-logging就差不多了

引用来自“边鹏_尛爺鑫”的评论

并建议你加上
  org.springframework.boot
  spring-boot-configuration-processor
  true
加上spring-boot-configuration-processor包
边鹏_尛爺鑫
边鹏_尛爺鑫

引用来自“成龙哥哥”的评论

这是我搭建的项目
https://github.com/clong1995/test-master2.git

引用来自“边鹏_尛爺鑫”的评论

我空余时间,些一个springboot 2.0的文章,你关注一下

引用来自“边鹏_尛爺鑫”的评论

我看了一下2.0的源码,差不多,你再配置中只是不需要service、max-activese、nable-logging就差不多了
并建议你加上
  org.springframework.boot
  spring-boot-configuration-processor
  true
边鹏_尛爺鑫
边鹏_尛爺鑫

引用来自“成龙哥哥”的评论

这是我搭建的项目
https://github.com/clong1995/test-master2.git

引用来自“边鹏_尛爺鑫”的评论

我空余时间,些一个springboot 2.0的文章,你关注一下
我看了一下2.0的源码,差不多,你再配置中只是不需要service、max-activese、nable-logging就差不多了
边鹏_尛爺鑫
边鹏_尛爺鑫

引用来自“成龙哥哥”的评论

这是我搭建的项目
https://github.com/clong1995/test-master2.git
我空余时间,些一个springboot 2.0的文章,你关注一下
边鹏_尛爺鑫
边鹏_尛爺鑫

引用来自“成龙哥哥”的评论

这是我搭建的项目
https://github.com/clong1995/test-master2.git

引用来自“边鹏_尛爺鑫”的评论

等等,我马上看看哈
首先我再写这篇文章的时候是springboot 1.x版本,还没到2.x,我拉了你的项目,发现很多配置有过时方法。但是并不影响使用。耶就是说,我吧你的项目改了数据库连接,和改了用户名,密码能正常使用。建议检查这3个的值:xa-properties:username、password、url
边鹏_尛爺鑫
边鹏_尛爺鑫

引用来自“成龙哥哥”的评论

这是我搭建的项目
https://github.com/clong1995/test-master2.git
等等,我马上看看哈
成龙哥哥
这是我搭建的项目
https://github.com/clong1995/test-master2.git
成龙哥哥
您好,请教一下,这个问题可能是什么导致的呢?
atomikos connection proxy for com.mysql.jdbc.JDBC4Connection@71d8cfe7: WARNING: transaction manager not running?
成龙哥哥
多谢您这篇文章的帮助
告诉你,Spring Boot 真是个牛逼货!

现在 Spring Boot 非常火,各种技术文章,各种付费教程,多如牛毛,可能还有些不知道 Spring Boot 的,那它到底是什么呢?有什么用?今天给大家详细介绍一下。 Spring Boot 的背景 了解 Spri...

技术小能手
2018/10/12
0
0
springboot之Redis的使用

spring boot对常用的数据库支持外,对nosql 数据库也进行了封装自动化。 redis介绍 Redis是目前业界使用最广泛的内存数据存储。相比memcached,Redis支持更丰富的数据结构,例如hashes, lis...

无语年华
2018/05/09
0
0
spring boot(2)起步依赖spring-boot-starter-*详解

--The core Spring Boot starter, including auto-configuration support, logging and YAML. --Spring Boot starter核心模块,包括自动配置支持,日志和YAML。 --Support for the “Advance......

刘胜球
2017/10/25
0
0
一文读懂 Spring Boot、微服务架构和大数据治理三者之间的故事

微服务架构 微服务的诞生并非偶然,它是在互联网高速发展,技术日新月异的变化以及传统架构无法适应快速变化等多重因素的推动下诞生的产物。互联网时代的产品通常有两类特点:需求变化快和用...

ityouknow
2018/05/16
0
0
一文读懂 Spring Boot、微服务架构和大数据治理三者之间的故事

微服务的诞生并非偶然,它是在互联网高速发展,技术日新月异的变化以及传统架构无法适应快速变化等多重因素的推动下诞生的产物。互联网时代的产品通常有两类特点:需求变化快和用户群体庞大,...

java高级架构牛人
2018/05/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

《人月神话》读后感

前两天看完了《人月神话》,最初是被这本书的名字吸引了,然后再在上搜了一下,人月确实是一个神话,那种不可能实现的神话……(!| ̄▽ ̄) 好久没有看过这种每章开始都引用一段名人名言的书了...

ninjaFrog
昨天
0
0
matlab-线性代数 施密特正交化

  matlab : R2018a 64bit     OS : Windows 10 x64 typesetting : Markdown    blog : my.oschina.net/zhichengjiu    gitee : gitee.com/zhichengjiu   code clearclc% 施密特正......

志成就
昨天
1
0
08 分支管理 —— 多人协作

08 分支管理 —— 多人协作 多人协作 本节内容: 查看远程库信息,使用git remote -v;本地新建的分支如果不推送到远程,对其他人就是不可见的;从本地推送分支,使用git push origin bra...

lwenhao
昨天
4
0
开始使用Filebeat

认识Beats Beats是用于单用途数据托运人的平台。它们以轻量级代理的形式安装,并将来自成百上千台机器的数据发送到Logstash或Elasticsearch。 (画外音:通俗地理解,就是采集数据,并上报到...

北极南哥
昨天
5
0
shell getopts template

!/bin/bash# ------------------------------------------------------------------# [Author] Title# Description# ---------------------------------------------------......

易野
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部