在我的 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/