Spring Boot事務傳播機制 - DZone Java

banq發表於2019-08-13

任何應用程式都涉及許多服務或元件呼叫其他服務或元件。事務傳播指示任何元件或服務是否將參與事務,以及如果呼叫元件/服務已經或者沒有已建立事務,它將如何表現。有六種型別的事務傳播:

  • REQUIRED預設
  • SUPPORTS
  • NOT_SUPPORTED
  • REQUIRES_NEW
  • NEVER
  • MANDATORY

REQUIRED預設

如果呼叫者的服務中有一個存在的事務,那麼就使用這個存在的,如果呼叫者中沒有事務上下文,則建立一個新的事務。

SUPPORTS

如果呼叫者的服務中有一個存在的事務,那麼就使用這個存在的,如果呼叫者中沒有事務上下文,則不會建立一個新的事務。

 NOT_SUPPORTED

無論呼叫者是否有事務,都不會建立或參與任何一個事務。

REQUIRES_NEW

無論呼叫者是否有事務,總是會建立自己的一個事務。

NEVER

如果呼叫者有事務,會丟擲exception,如果呼叫者沒有事務,也不會建立事務,在沒有事務環境下執行。

MANDATORY

如果呼叫者的服務中有一個存在的事務,那麼就使用這個存在的,如果呼叫者中沒有事務上下文,會丟擲exception。

點選標題見原文程式碼案例。

 

相關文章