使用 spring @Transactional 的 Spring Boot 无需启用事务管理即可工作

标签 spring spring-boot spring-transactions

在我的 Spring Boot 应用程序中,spring @Transactional 注释无需显式指定 @EnableTransactionManagement 即可工作。

有没有官方文档说它是自动启用的?

或者有其他事情发生....?

顺便说一句:我正在使用 Spring Data JPA

最佳答案

是的,只要您有 spring-tx 就可以启用此功能以及应用程序中的一些事务资源。如果您使用 spring-boot-starter-jdbc 有效或 spring-boot-starter-data-jpa , Spring Boot 会配置一个 DataSource对于您,启动 Hibernate(在后一种情况下)并配置事务管理。

并非所有“Enable”注释都需要显式设置。当我们可以检查合理数量的事情来验证为您配置它是否有意义时,我们会这样做。在这种情况下,如果您有 DataSource您可能想进行交易。如果您有 JPA(并且没有 JTA 基础设施),您可能需要一个 JpaTransactionManager )。如果我们自动配置它,最简单的使用方法是通过 @Transactional所以在这种情况下我们也会启用它。

我猜你一直要求得到某种“官方”的答案,所以这里有一个。

关于使用 spring @Transactional 的 Spring Boot 无需启用事务管理即可工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40046116/

相关文章:

java - 使用 Java 托管 HTTP 端点

java - 无法在 logback 中关闭控制台日志记录

java - 根据参数在数据库中查找固定数量的 RANDOM 用户的最佳方法是什么?

spring-boot - 使用CrudRepository中的外键进行Spring Boot

java - Spring @Transactional 和继承

java - spring mvc - 如何在不创建 View 的情况下从 Controller 检索值

java - Spring Data REST 存储库中的枚举翻译

java - 多个依赖冲突问题中的同名Bean

spring-transactions - Spring Kafka 中的事务同步

java - Hibernate 集合不与任何 session 关联