簡體   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