Spring事務處理Transactional,鎖同步和并發線程_第1頁
Spring事務處理Transactional,鎖同步和并發線程_第2頁
Spring事務處理Transactional,鎖同步和并發線程_第3頁
Spring事務處理Transactional,鎖同步和并發線程_第4頁
Spring事務處理Transactional,鎖同步和并發線程_第5頁
已閱讀5頁,還剩1頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第Spring事務處理Transactional,鎖同步和并發線程*LicensedundertheApacheLicense,Version2.0(the"License");

*youmaynotusethisfileexceptincompliancewiththeLicense.

*YoumayobtainacopyoftheLicenseat

*/licenses/LICENSE-2.0

*Unlessrequiredbyapplicablelaworagreedtoinwriting,software

*distributedundertheLicenseisdistributedonan"ASIS"BASIS,

*WITHOUTWARRANTIESORCONDITIONSOFANYKIND,eitherexpressorimplied.

*SeetheLicenseforthespecificlanguagegoverningpermissionsand

*limitationsundertheLicense.

packageorg.springframework.transaction;

importjava.sql.Connection;

*InterfacethatdefinesSpring-complianttransactionproperties.

*BasedonthepropagationbehaviordefinitionsanalogoustoEJBCMTattributes.

*pNotethatisolationlevelandtimeoutsettingswillnotgetappliedunless

*anactualnewtransactiongetsstarted.Asonly{@link#PROPAGATION_REQUIRED},

*{@link#PROPAGATION_REQUIRES_NEW}and{@link#PROPAGATION_NESTED}cancause

*that,itusuallydoesn'tmakesensetospecifythosesettingsinothercases.

*Furthermore,beawarethatnotalltransactionmanagerswillsupportthose

*advancedfeaturesandthusmightthrowcorrespondingexceptionswhengiven

*non-defaultvalues.

*pThe{@link#isReadOnly()read-onlyflag}appliestoanytransactioncontext,

*whetherbackedbyanactualresourcetransactionoroperatingnon-transactionally

*attheresourcelevel.Inthelattercase,theflagwillonlyapplytomanaged

*resourceswithintheapplication,suchasaHibernate{@codeSession}.

*@authorJuergenHoeller

*@since08.05.2003

*@seePlatformTransactionManager#getTransaction(TransactionDefinition)

*@seeorg.springframework.transaction.support.DefaultTransactionDefinition

*@seeerceptor.TransactionAttribute

publicinterfaceTransactionDefinition{

*Supportacurrenttransaction;createanewoneifnoneexists.

*AnalogoustotheEJBtransactionattributeofthesamename.

*pThisistypicallythedefaultsettingofatransactiondefinition,

*andtypicallydefinesatransactionsynchronizationscope.

intPROPAGATION_REQUIRED=0;

*Supportacurrenttransaction;executenon-transactionallyifnoneexists.

*AnalogoustotheEJBtransactionattributeofthesamename.

*pbNOTE:/bFortransactionmanagerswithtransactionsynchronization,

*{@codePROPAGATION_SUPPORTS}isslightlydifferentfromnotransaction

*atall,asitdefinesatransactionscopethatsynchronizationmightapplyto.

*Asaconsequence,thesameresources(aJDBC{@codeConnection},a

*Hibernate{@codeSession},etc)willbesharedfortheentirespecified

*scope.Notethattheexactbehaviordependsontheactualsynchronization

*configurationofthetransactionmanager!

*pIngeneral,use{@codePROPAGATION_SUPPORTS}withcare!Inparticular,do

*notrelyon{@codePROPAGATION_REQUIRED}or{@codePROPAGATION_REQUIRES_NEW}

*iwithin/ia{@codePROPAGATION_SUPPORTS}scope(whichmayleadto

*synchronizationconflictsatruntime).Ifsuchnestingisunavoidable,makesure

*toconfigureyourtransactionmanagerappropriately(typicallyswitchingto

*"synchronizationonactualtransaction").

*@seeorg.springframework.transaction.support.AbstractPlatformTransactionManager#setTransactionSynchronization

*@seeorg.springframework.transaction.support.AbstractPlatformTransactionManager#SYNCHRONIZATION_ON_ACTUAL_TRANSACTION

intPROPAGATION_SUPPORTS=1;

*Supportacurrenttransaction;throwanexceptionifnocurrenttransaction

*exists.AnalogoustotheEJBtransactionattributeofthesamename.

*pNotethattransactionsynchronizationwithina{@codePROPAGATION_MANDATORY}

*scopewillalwaysbedrivenbythesurroundingtransaction.

intPROPAGATION_MANDATORY=2;

*Createanewtransaction,suspendingthecurrenttransactionifoneexists.

*AnalogoustotheEJBtransactionattributeofthesamename.

*pbNOTE:/bActualtransactionsuspensionwillnotworkout-of-the-box

*onalltransactionmanagers.Thisinparticularappliesto

*{@linkorg.springframework.transaction.jta.JtaTransactionManager},

*whichrequiresthe{@codejavax.transaction.TransactionManager}

*tobemadeavailableittoit(whichisserver-specificinstandardJ2EE).

*pA{@codePROPAGATION_REQUIRES_NEW}scopealwaysdefinesitsown

*transactionsynchronizations.Existingsynchronizationswillbesuspended

*andresumedappropriately.

*@seeorg.springframework.transaction.jta.JtaTransactionManager#setTransactionManager

intPROPAGATION_REQUIRES_NEW=3;

*Donotsupportacurrenttransaction;ratheralwaysexecutenon-transactionally.

*AnalogoustotheEJBtransactionattributeofthesamename.

*pbNOTE:/bActualtransactionsuspensionwillnotworkout-of-the-box

*onalltransactionmanagers.Thisinparticularappliesto

*{@linkorg.springframework.transaction.jta.JtaTransactionManager},

*whichrequiresthe{@codejavax.transaction.TransactionManager}

*tobemadeavailableittoit(whichisserver-specificinstandardJ2EE).

*pNotethattransactionsynchronizationisinot/iavailablewithina

*{@codePROPAGATION_NOT_SUPPORTED}scope.Existingsynchronizations

*willbesuspendedandresumedappropriately.

*@seeorg.springframework.transaction.jta.JtaTransactionManager#setTransactionManager

intPROPAGATION_NOT_SUPPORTED=4;

*Donotsupportacurrenttransaction;throwanexceptionifacurrenttransaction

*exists.AnalogoustotheEJBtransactionattributeofthesamename.

*pNotethattransactionsynchronizationisinot/iavailablewithina

*{@codePROPAGATION_NEVER}sc

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論