春天的事務管理,圖解事務傳播行爲
9.3.5 所需的傳播行爲 圖最9-3 新 {
addressService.save(user.getAddress()); //將在同一個事務內執行 }趕上(RuntimeException的E) userService.countAll()); Assert.assertEquals(1,addressService.countAll()); 爲如下形式: java的代碼: Java的代碼 嘗試{
userService.save(用戶); Assert.fail(); }趕上(RuntimeException的E)
{ } Assert.assertEquals(0,userService.countAll()); Assert.assertEquals(0, RequiresNew傳播行爲 圖最9-5 TransactionTemplate的= TransactionTemplate的= userService.countAll()); Assert.assertEquals(1, 新 userService.countAll()); Assert.assertEquals(1,addressService.countAll()); 爲如下形式: java的代碼: Java的代碼 嘗試{
userService.save(用戶); Assert.fail(); }趕上(RuntimeException的E)
{ } Assert.assertEquals(0,userService.countAll()); Assert.assertEquals(1, 所需的+支持傳播行爲
圖最9-7 需要+ NotSupported傳播行爲
圖最9-9 需要+強制性傳播行爲
圖最9-11 所需的+決不傳播行爲
圖最9-13 需要+嵌套的傳播行爲 圖最9-15嵌套+嵌套的傳播行爲 嵌套和RequiresNew的區別: 1,RequiresNew每次都創建新的獨立的物理事務,而嵌套只有一個物理事務; 2,RequiresNew由於都是全新的事務,所以之間是無關聯的; 3,嵌套使用JDBC 正確的事務只讀設置 圖最9-17 交易帶的定義[......]沒有被標記爲 春天的事務之9.3編程式事務 226 積分:700
發表時間:10小時前最後修改:9小時前引用收藏 代理方式下的自我調用 圖最9-18 修改TransactionProxyFactoryBean的配置定義,添加exposeProxy屬性爲真; 2,在業務方法內通過代理對象調用相應的事務方放,如 使用這種方式屬於侵入式,不推薦使用,除非必要。 圖9-19代理方式下的自我調用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.