PlatformTransactionManager
Spring
进行了统一的抽象,形成了PlatformTransactionManager
事务管理器接口,事务的提交、回滚等操作全部交给它来实现。Spring
的事务体系也是在PlatformTransactionManager
事务管理器接口上开展开来的(不管是JPA
还是JDBC
等都实现自接口PlatformTransactionManager
如果你添加的是spring-boot-starter-jdbc
依赖,框架会默认注入DataSourceTransactionManager
实例。如果你添加的是spring-boot-starter-data-jpa
依赖,框架会默认注入JpaTransactionManager
实例。
JpaTransactionManager 和 JdbcTransactionManager 是 Spring 框架中用于管理事务的两个不同的事务管理器。
JpaTransactionManager
- JpaTransactionManager 是用于管理 JPA(Java Persistence API)事务的事务管理器。
- 它与 JPA 提供的 EntityManagerFactory 一起使用,通过对 EntityManagerFactory 的事务管理来管理 JPA 事务。
- JpaTransactionManager 可以与 Hibernate、EclipseLink 等 JPA 实现一起使用。
JdbcTransactionManager
- JdbcTransactionManager 是用于管理 JDBC(Java Database Connectivity)事务的事务管理器。
- 它与 JDBC 提供的 DataSource 一起使用,通过对 DataSource 的事务管理来管理 JDBC 事务。
- JdbcTransactionManager 可以与任何支持 JDBC 的数据库一起使用,如 MySQL、Oracle 等。