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 等。