事務傳播屬性

2022-08-02 03:39:11 字數 995 閱讀 9455

事務傳播屬性做總結:

required:業務方法需要在乙個事務中執行。如果方法執行時,已經處在乙個事務中,那麼這個時候就會加入到該事務中,如果當前沒有事務環境的話,就會為自己建立乙個新的事務。預設情況下,業務方法的事務傳播屬性就是required。在應用開發中,80%的情況下都會使用這種事務傳播屬性。

not_supported:宣告方法不需要事務。如果方法沒有關聯到乙個事務,容器不會為它開啟事務。如果方法在乙個事務中被呼叫(在其他業務bean的方法中被呼叫了,而其他業務bean的方法是開啟了事務的),該事務會被掛起,在方法呼叫結束後,原先的事務便會恢復執行。

requiresnew:該屬性表明不管當前是否存在事務,業務方法總會為自己發起乙個新的事務。如果方法已經執行在乙個事務中,則原有事務會被掛起,新的事務會被建立,直到方法執行結束,新事務才算結束,原先的事務才會恢復執行。

mandatory:該屬性指定業務方法只能在乙個已經存在的事務中執行,業務方法不能發起自己的事務。如果業務方法在沒有事務的環境下呼叫,容器就會丟擲異常。

supports:這一事務屬性表明,如果業務方法在某個事務範圍內被呼叫,則方法成為該事務的一部分。如果業務方法在事務範圍外被呼叫,則方法在沒有事務的環境下執行。即當標註了事務傳播屬性——supports的業務方法在另乙個bean的業務方法中執行時,如果另乙個bean的業務方法開啟了事務,那麼執行到標註了事務傳播屬性——supports的業務方法時,它就會處在事務中執行,如果另乙個bean的業務方法也沒開啟事務,那麼標註了事務傳播屬性——supports的業務方法也在沒有事務的環境中進行。

never:指定業務方法絕對不能在事務範圍內執行。如果業務方法在某個事務中執行,容器會丟擲異常,只有業務方法沒有關聯到任何事務,才能正常執行。

nested:如果乙個活動的事務存在,則當前方法執行在乙個巢狀的事務中。 如果沒有活動事務,則按required屬性執行。它使用了乙個單獨的事務,這個事務擁有多個可以回滾的儲存點。內部事務的回滾不會對外部事務造成影響。它只對datasourcetransactionmanager事務管理器起效果。

Spring 事務傳播屬性

propagation required 支援當前事務,如果不存在這建立乙個新事務,這是預設的事務管理。propagation supports 支援當前事務,如果不存在則已非事務的方式執行 propagation mandatory 如果存在乙個事務,支援當前事務,如果沒有事務活動則丟擲異常 pr...

Spring的事務傳播屬性

required 業務方法需要在乙個事務中執行。如果方法執行時,已經處在乙個事務中,那麼加入到該事務,否則為自己建立乙個新的事務。not supported 宣告方法不需要事務。如果方法沒有關聯到乙個事務,容器不會為它開啟事務。如果方法在乙個事務中被呼叫,該事務會被掛起,在方法呼叫結束後,原先的事務...

Spring事務的傳播屬性

搜尋 198200.com spring在transactiondefinition介面中規定了7種型別的事務傳播行為。事務傳播行為是spring框架獨有的事務增強特性,他不屬於的事務實際提供方資料庫行為。這是spring為我們提供的強大的工具箱,使用事務傳播行可以為我們的開發工作提供許多便利。但是...