/SpringBootMultiDataSource

SpringBoot+JTA+JPA+JdbcTemplate多数据源示例项目

Primary LanguageJava

SpringBootMultiDataSource

简介

本项目为Demo项目,主要包含如下两个模块:

  • nonjta-jpa
  • jta-jpa

nonjta为springboot+jpa+hikari多数据源+jdbcTemplate+且带jpa独立事务的项目配置示例,并编写了demo测试不同方式操作数据库的事务情况。
jta-jpa则在nonjta基础上引入了jta-atomikos,并编写了demo测试不同方式操作数据库的事务情况。

配置详情

nonjta-jpa:

  • springboot 2.3.2.RELEASE
  • hikari springboot自带数据库连接池
  • jdbcTemplate 跟随springboot版本
  • jpa 跟随springboot版本
  • 多数据源,都是mysql,其他类型数据库自行扩充

jta-jpa

  • springboot 2.3.2.RELEASE
  • AtomikosDataSource 数据库连接池
  • jdbcTemplate 跟随springboot版本
  • jpa 跟随springboot版本
  • jta Atomikos
  • 多数据源,都是mysql,其他类型数据库自行扩充

备注:

  • 本项目使用的SpringBoot版本为2.3.2.RELEASE,在较低版本的springboot中配置会出现无法找到jtaPlatform的问题,无法配置成功;
  • 使用jta的时候,需要配套使用AtomikosDataSourceBean数据库连接池,否则jdbcTemplate无法正常回滚。

tips

  • @Transactional注解需要添加在public方法上;
  • 在多数据源多事务管理器的情况下,@Transactional需要主动指定正确的事务管理器否则无法正确回滚;