-
聲明式事務管理查看全部
-
6.springTransactionSummary查看全部
-
5.1編程式的事務控制查看全部
-
4.1SpringTransactionManagement查看全部
-
3.4Propagation查看全部
-
3.3TransactionLevel查看全部
-
3.2PlatformTransactionManager查看全部
-
3.1Spring 事務管理3個接口查看全部
-
基于aspectj(切面)配置: 這是一種經(jīng)常使用的事務聲明方式 在配置文件中配置完dataSourceTransactionManager之后,使用spring提供的命名空間為<tx:advice>的標簽給事務配置屬性,比如傳播行為、隔離級別、異常處理等等,這是一種基于面向切面的配置方式,可以在任何想要事務處理的地方使用,其次就是使用aop的聲明式方式完成advice和pointcut的橫切面配置,注意advice引用的就是<tx>標簽配置的事務,pointcut是切入的方法查看全部
-
轉(zhuǎn)賬環(huán)境準備查看全部
-
TransactionStatus接口用來記錄事務的狀態(tài) 該接口定義了一組方法,用來獲取或判斷事務的相應狀態(tài)信息. 平臺事務管理器(PlatformTransactionManager)會根據(jù)TransactionDefinition中定義的事務信息(包括隔離級別、傳播行為)來進行事務的管理,在管理的過程中事務可能產(chǎn)生了保存點或事務是新的事務等情況,那么這些信息都會記錄在TransactionStatus的對象中.查看全部
-
事務的傳播行為:主要是解決業(yè)務層方法之間的相互調(diào)用的問題 事務的傳播行為有七種,又分為三類: 第一類共同點:如果 A 方法中有事務,則調(diào)用 B 方法時就用該事務,即:A和B方法在同一個事務中。 PROPAGATION_REQUIRED:如果 A 方法中沒有事務,則調(diào)用 B 方法時就創(chuàng)建一個新的事務,即:A和B方法在同一個事務中。 PROPAGATION_SUPPORTS:如果 A 方法中沒有事務,則調(diào)用 B 方法時就不使用該事務。 PROPAGATION_MANDATORY:如果 A 方法中沒有事務,則調(diào)用 B 方法時就拋出異常。 第二類共同點:A方法和B方法沒有在同一個事務里面。 PROPAGATION_REQUIRES_NEW:如果 A 方法中有事務,則掛起并新建一個事務給 B 方法。 PROPAGATION_NOT_SUPPORTED:如果 A 方法中有事務,則掛起。 PROPAGATION_NEVER:如果 A 方法中有事務,則報異常。 第三類:如果 A 方法有的事務執(zhí)行完,設置一個保存點,如果 B 方法中事務執(zhí)行失敗,可以滾回保存點或初始狀態(tài)。 PROPAGATION_NESTED :如果當前事務存在,則嵌套事務執(zhí)行 @重點的三種:PROPAGATION_REQUIRED, PROPAGATION_REQUIRES_NEW, PROPAGATION_NESTED。查看全部
-
數(shù)據(jù)庫事務的隔離四種隔離級別: 安全等級由小到大依次是: read_uncommitted 臟讀、不可重復讀、幻讀都有可能發(fā)生 read_committed 避免發(fā)生臟讀 repeatable_read 避免發(fā)生臟讀,不可重復讀 serializble 串行的以隊列的形式,都可避免 臟讀:一個事務在讀取到另一個事務把以改變,未提交的事務,數(shù)據(jù)回滾后,可能出現(xiàn)無效的數(shù)據(jù) 不可重復讀:在同一個事務中,事務中前后查詢的數(shù)據(jù)不一致,可能是兩次查詢中間有事務做了更新數(shù)據(jù)的操作。 幻讀:一個事務在查詢的過程中,先后查詢出的結(jié)果不一致,中間可能有另一個事務做了數(shù)據(jù)的插入。 spring事務管理提供了一個isolation default ,根據(jù)持久層默認的隔離級別 oracle----read_committed mysql----repeatable_read查看全部
-
Spring為不同的持久化框架提供不同的PlatformTransactionManager接口實現(xiàn)查看全部
-
http://img1.sycdn.imooc.com//5831c4bd0001bde312800720.jpg查看全部
舉報
0/150
提交
取消