在開發中,一般都把事務加到service層。
和事務相關的註解:@transactional
事務管理方式有兩種:程式設計式事務 、宣告式事務
宣告式事務:通過註解來使用事務,底層是建立在 aop 的基礎之上的。其本質是對方法前後進行攔截,然後在目標方法開始之前建立或者加入乙個事務,在執行完目標方法之後根據執**況提交或者回滾事務。
宣告式事務: 搭配 和
aop 底層是**,分為 jdk動態** 和 cglib**
jdk動態**:目標類只能是介面
jdk**與目標類都會實現同乙個介面,並且在**類中會呼叫目標類中被**的方法,呼叫者實際呼叫的則是**類的方法,通過這種方式我們就可以在**類中織入切面邏輯,jdk**存在的問題在於目標類被**的方法必須實現某個介面
cglib**:目標類是不是介面都可以
@transactional 預設使用的事務傳播行為是:required:如果當前存在事務,則加入該事務;如果當前沒有事務,則建立乙個新的事務。
注:只要是以**方式實現的宣告式事務,無論是jdk動態**,還是cglib直接寫位元組碼生成**,都只有public方法上的事務註解才起作用。而且必須在**類外部呼叫才行,如果直接在目標類裡面呼叫,事務照樣不起作用。
記一些spring的aop中一些常用獲取引數的方法
如果aspect切點切入的是controller在spring mvc 的配置中加入 獲取request 與response 獲取方法與方法上的注釋 這個我主要是用joinpoint來獲取,獲取方式如下 signature signature joinpoint.getsignature metho...
Spring事務的一些特性
1.原子性 乙個事務中所有對資料庫的操作是乙個不可分割的操作序列,要麼全做要麼全不做 2.一致性 資料不會因為事務的執行而遭到破壞 3.隔離性 乙個事物的執行,不受其他事務的干擾,即併發執行的事物之間互不干擾 4.永續性 乙個事物一旦提交,它對資料庫的改變就是永久的 1.default 預設的事務隔...
Spring事務的一些特性
1.原子性 乙個事務中所有對資料庫的操作是乙個不可分割的操作序列,要麼全做要麼全不做 2.一致性 資料不會因為事務的執行而遭到破壞 3.隔離性 乙個事物的執行,不受其他事務的干擾,即併發執行的事物之間互不干擾 4.永續性 乙個事物一旦提交,它對資料庫的改變就是永久的 1.default 預設的事務隔...