一、宣告式事務
透過 AOP(面向切面)方式在方法前使用編程式事務的方法開啟事務,在方法後提交或復原.以設定檔的方法或註解方法(如:@Transactional)控制事務。
註解在方法上是方法自動啟動事務,在類別上是整個類別中的方法都使用事務
二、方法
1.基於TransactionProxyFactoryBean的聲明式事務管理
#在applicationContext.xml中配置
然後在需要進行交易管理的service層注入這個代理類accountrviceProxy
@Resource(name="accountrviceProxy")
這種方式有個缺點,就是我們要給每一個需要進行事務管理的service類都要配上它的代理類,配置起來比較繁瑣。
2.基於AspectJ的XML的宣告式交易管理
在設定切入點時有一個表達式:
expression="execution(* com.cn.study.spring.service.IAccountService+.*(..))"
execution括號裡的參數依序表示方法傳回類型,包名,類別名,方法名稱及方法的參數
其中 * 表示任意
IAccountService 表示IAccountService介面所有實作類別的方法
#這種方式是比較常用的一種。
3.基於註解的宣告式交易管理
第三種方式最簡單,我們只需要在applicationContext.xml中設定開啟註解交易的驅動,然後在需要進行事務管理的類別前加上註解:
@Transactional(propagation=Propagation.REQUIRED)
以上是java聲明式事務的方法有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!