全栈程序员 2023-11-02 13:18
浏览 16
已结题

Springboot 获取 DataSourceTransactionManager 为 null

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 等。
  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 11月10日
    • 创建了问题 11月2日