1香拉、PlatformTransactionManager 事務(wù)管理器
spring要管理事務(wù)必須使用事務(wù)管理器费什。
進行事務(wù)配置時回梧,必須配置事務(wù)管理器
2县袱、TransactionDefinition 事務(wù)詳情
spring用于確定事務(wù)具體詳情,比如:隔離級別享扔,是否只讀底桂,超時時間。
進行事務(wù)配置時惧眠,必須配置詳情籽懦,spring將配置項封裝到了該對象實例。
3氛魁、TransactionStatus 事務(wù)狀態(tài)
spring用于記錄當(dāng)前事務(wù)運行狀態(tài)暮顺,比如:是否有保存點,事務(wù)是否完成秀存。
spring底層根據(jù)狀態(tài)進行相應(yīng)操作捶码。
TransactionDefinition 事務(wù)詳情
事務(wù)的傳播行為:多個業(yè)務(wù)間怎么樣共享事務(wù)
總共7種。
PROPAGATION_REQUIRED (必須):支持當(dāng)前事務(wù)应又,如果A有事務(wù)宙项,B必須使用該事務(wù)乏苦,如果A沒用事務(wù)株扛,那么B將創(chuàng)建一個事務(wù)。
PROPAGATION_SUPPORTS(支持): 支持當(dāng)前事務(wù)汇荐,如果A有事務(wù)洞就,那么B將使用該事務(wù)。如果A沒有事務(wù)掀淘,B將以非事務(wù)執(zhí)行旬蟋。
PROPAGATION_MANDATORY(強制):支持當(dāng)前事務(wù),A如果有事務(wù)革娄,B將使用該事務(wù)倾贰,A如果沒有事務(wù)冕碟,B將拋出異常。
PROPAGATION_REQUIRES_NEW(必須新的):如果A有事務(wù)匆浙,將A的事務(wù)將掛機安寺,B創(chuàng)建一個新的事務(wù)。如果A沒有事務(wù)首尼,B創(chuàng)建一個新的事務(wù)挑庶。
PROPAGATION_NOT_SUPPORTED(不支持):
如果A有事務(wù),將A的事務(wù)將掛機软能,B將以非事務(wù)執(zhí)行迎捺。如果A沒有事務(wù),B將以非事務(wù)執(zhí)行查排。
PROPAGATION_NEVER(不):如果A有事務(wù)凳枝,B將拋異常。如果A沒有事務(wù)跋核,B將以非事務(wù)執(zhí)行范舀。
PROPAGATION_NESTED(嵌套):
A和B底層采用保存點的機制,形成嵌套事務(wù)了罪。
1锭环、配置事務(wù)管理器
2、開啟事務(wù)管理
3泊藕、使用@Transactional