spring相關知識點3

2021-08-21 21:33:18 字數 1675 閱讀 8651

spring_day03

二.事務特性:acid

//事務隔離性併發:髒讀、幻讀、不可重複讀

事務隔離級別:1、2、4、8 1:讀未提交 2:讀已提交 4:可重複讀 8:序列化

spring封裝了事務管理**:開啟事務、提交事務、回滾事務

在不同平台(jdbc、hibernate、mybatis)操作事務的**各不相同,所以spring提供了乙個介面(platformtransactionmanager介面),針對不同平台,提供不同的實現類(jdbctransactionmanager、hibernatetransactionmanager)

spring事務管理,核心就是transactionmanager

spring管理事務的屬性介紹:事務的隔離級別、本次事務是否唯讀、事務的傳播行為(如下)

propagation_required:支援當前事務,如果不存在,就新建乙個

propagation_supports:支援當前事務,如果不存在,就不使用事務

propagation_handatory:支援當前事務,如果不存在,丟擲異常

propagation_required_new:如果有事務存在,掛起當前事務,建立新的事務

propagation_not_supported:以非事務方式執行,如果有事務存在,掛起當前事務

propagation_never:以非事務方式執行,如果有事務存在,丟擲異常

propagation_nested:如果當前事務存在,則巢狀執行(會開新事務)

這裡測試採用extends jdbcdaosupport的自帶jdbctemplate來測試

ad.decreasemoney(from,money); int a=1/0; ad.addmoney(to,money);這樣需要事務進行管理,以免原子性出錯

spring管理事務常用的兩種方式:編碼式、aop的xml配置式(aop)、註解配置(aop)

後兩種常用

編碼式:

//public void transfer(final integer from,final integer to,final double money)

@override

public void transfer(integer from, integer to, double money)

});//execute方法:1.開啟事務2.呼叫dointransactionwithoutresult方法

//3.提交事務

xml配置式:

註解式:(將配置事務通知和配置織入改為開啟使用註解管理aop事務)

加註解的**:

//以下註解只在demo2測試使用,可以直接加到該類上設定全域性,此時若有區域性屬性差異可在區域性設定

@transactional(isolation=isolation.repeatable_read,propagation=propagation.required,readonly=false)

@override

public void transfer(integer from, integer to, double money)

spring事務的相關知識點

4 事務管理失效的情況 所謂spring事務的傳播屬性,就是定義多個事務同時存在的時候,spring應該如何處理這些事務的行為。簡單來講就是 乙個開啟事務的方法執行在另乙個開啟了事務的方法中是,當前方法是開啟乙個新的事物還是使用同乙個事務 這些屬性在transactiondefinition中定義,...

相關知識點

nweb inf uclasses uweb.xml ulib n 從httpservlet 繼承,重寫doget dopost方法 n部署web.xml n 只有乙個物件 n 第一次請求的時候被初始化,只一遍 n 初始化後先呼叫init 方法,只一遍 n 每個請求,呼叫一遍service serv...

spring 知識點梳理

1.spring預設所有管理的bean都是單例模式 懶載入,所有的bean都是交給spring容器中的map管理,生命週期與spring相同,如果使用多例模式,bean則是交給記憶體管理,生命週期與spring無關 2.ssm分層 控制層 服務層 資料層 對應的註解分別為 controller se...