春季交易和 AOP 代理



在许多文章中,我读到以下内容"Spring 的声明式事务是通过 AOP 代理启用的"。

对于像我这样的新手来说,这到底意味着什么?

我可以在什么样的类或 bean 上使用 @Transactional 注释?

我必须在POM中添加maven依赖项"spring-aop"吗.xml?

是否明确需要@EnableTransactionManagement才能使交易工作?

已经有一个答案详细介绍了@Transactional的作用和工作原理。

关于你的其他问题。

我可以在什么样的类或 bean 上使用@Transactional注释?

理论上,您想要的每个类。你应该这样做不。例如,在制作 Web 图层时,事务边界通常被认为是一个坏主意,因为服务层应该是事务边界。

我必须在pom.xml中添加 maven 依赖项spring-aop吗?

不。spring-tx依赖关系本身已经拉动了这一点。使用spring-boot-starter-data-jpa(或其他与持久性相关的)时,它也将自动包含在内。

是否明确需要@EnableTransactionManagement才能使事务正常工作?

这要看情况。一般来说,在 Spring Boot 应用程序中,你不需要添加这个,因为 Spring Boot 会自动启用这个。如果你不使用 Spring Boot,而只是一个普通的 Spring 应用程序,那么在使用 XML 时,你需要添加@EnableTransactionManagement<tx:annotation-driven>来告诉 Spring 处理@Transactional注释。

相关内容

  • 没有找到相关文章

最新更新