背景:SpringBoot整合多数据源及分布式事物管理
1. SpringBoot分布式事物管理:使用springboot+jta+atomikos 分布式事物管理
SpringBoot 父类版本为2.1.2 <!-- Maven中的parent 目的: 聚合工程、继承关系(jar包) --> <!-- Spring parent 目的: 统一整合第三方框架依赖信息 --> <!-- 引入SpringBoot的Maven依赖 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.2.RELEASE</version> </parent>
2. 新增 jta-atomikos依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jta-atomikos</artifactId>
</dependency>
3. 新增application.yml配置文件,数据库版本是mysql_8.0.16
#端口号
server:
port: 8026
# 数据库连接
# &serverTimezone=GMT%2B8 为中国东八区标准时区
spring:
datasource:
#datasource1
test01:
#jdbc-url: jdbc:mysql://127.0.0.1:3306/test01?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8
url: jdbc:mysql://127.0.0.1:3306/test01?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
minPoolSize: 3
maxPoolSize: 25
maxLifetime: 20000
borrowConnectionTimeout: 30
loginTimeout: 30
maintenanceInterval: 60
maxIdleTime: 60
###datasource2
test02:
#jdbc-url: jdbc:mysql://127.0.0.1:3306/test02?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8
url: jdbc:mysql://127.0.0.1:3306/test02?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
minPoolSize: 3
maxPoolSize: 25
maxLifetime: 20000
borrowConnectionTimeout: 30
loginTimeout: 30
maintenanceInterval: 60
maxIdleTime: 60
4. 新增配置文件实体类
4.1 第一个实体类