繁体   English   中英

如何在Spring启动中使用@Transactional注释

[英]How to use @Transactional annotation in Spring boot

我正在开发一个spring-boot项目。

在我的项目中使用@Transactional注释之前,我有两个问题

  1. 在spring-boot,服务层或DAO层中使用@Transactional注释的最佳实践?

  2. 如果服务层,那么我在哪个类或该类中的方法上使用@Transactional注释?

  1. Service层中使用@Transactional ,因为DAO层不应包含业务逻辑

服务层可以调用不同的DAO来执行数据库操作。 让我们假设您在服务方法中有3个DAO操作的情况。 如果您的第一个DAO操作失败,其他两个可能仍然通过,您将结束不一致的DB状态。 注释服务层可以避免这种情况。

  1. 在方法级别使用它,因为类级别不太有用,因为它强制所有方法(以及将来的方法/子类)都是事务性的

在类级别,此批注作为默认应用于声明类及其子类的所有方法

  1. 在服务层:您希望您的整个业务方法是ACID
  2. 如果您希望所有bean方法都是事务性的,则在该类上,如果您希望该特定方法是跨性的,或者具有不同的事务属性,则在该方法上

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM