java中事物的注解_编程式事务、XML配置事务、注解实现事务
Spring2.0框架的事務處理有兩大類:
1 編碼式事務 , 這個不說.
2 聲明式事務 , 就說這個.
聲明式事務又有三種實現方法:
1?(第一種)?最早的方法,用TransactionProxyFactoryBean,他是一個有AOP代理功能的FactoryBean.他返回的對象有事務.
還要在spring的配置文件XML中配置,比較麻煩,不詳細說.
pic.dao.transaction_test.TestPOAO
PROPAGATION_REQUIRED
2?(第二種)?使用來實現聲明式事務 ,也要在spring的配置文件XML中配置,比較麻煩,不詳細說.
.....
.....
3?(第三種)?這個方法方便,使用注解來實現聲明式事務, 下面詳細說說這個方法:
第一步:引入命名空間 ,在spring的配置文件中修改, beans根元素里多了三行,如下
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
第二步:在spring的配置文件中修改,將所有具有@Transactional 注解的bean自動配置為聲明式事務支持
第三步: 在接口或類的聲明處 ,寫一個@Transactional. 要是只的接口上寫, 接口的實現類就會繼承下來.
接口的實現類的具體方法,還可以覆蓋類聲明處的設置.
@Transactional
public class TestPOAOImpl extends POAOBase implements TestPOAO
{
@Transactional(isolation = Isolation.READ_COMMITTED)
public void test1()
{
String sql = "INSERT INTO sy_test (NAME,AGE) VALUES('注解趙云',30)";
execute(sql);
sql = "INSERT INTO sy_test (NAME,AGE) VALUES('注解張飛',26)";
execute(sql);
int a = 9 / 0; //異常
sql = "INSERT INTO sy_test (NAME,AGE) VALUES('注解關羽',33)";
execute(sql);
System.out.println("走完了");
}
//execute() 方法略...
}
注意的幾點:
1? @Transactional 只能被應用到public方法上, 對于其它非public的方法,如果標記了@Transactional也不會報錯,但方法沒有事務功能.
2 默認情況下,一個有事務方法, 遇到RuntiomeException?時會回滾?.? 遇到?受檢查的異常?是不會回滾?的. 要想所有異常都回滾,要加上 @Transactional( rollbackFor={Exception.class,其它異常}) .
@Transactional? 的所有可選屬性如下:
屬性
類型
默認值
說明
propagation
Propagation枚舉
REQUIRED
事務傳播屬性?(下有說明)
isolation
isolation枚舉
DEFAULT
事務隔離級別?(另有說明)
readOnly
boolean
false
是否只讀
timeout
int
-1
超時(秒)
rollbackFor
Class[]
{}
需要回滾的異常類
rollbackForClassName
String[]
{}
需要回滾的異常類名
noRollbackFor
Class[]
{}
不需要回滾的異常類
noRollbackForClassName
String[]
{}
不需要回滾的異常類名
總結
以上是生活随笔為你收集整理的java中事物的注解_编程式事务、XML配置事务、注解实现事务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苹果耳机无线真假测试软件,苹果耳机“真伪
- 下一篇: java參数传递机制浅析