Aop事务小结(事务管理器和自身构建)
生活随笔
收集整理的這篇文章主要介紹了
Aop事务小结(事务管理器和自身构建)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
聲明市事務是利用AOP來實現的。
1、采用事務管理器AOP:
<!--3、配置事務切面;控制住連接池 --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="comboPooledDataSource"></property></bean>2、配置開啟基于注解的事務控制 <tx:annotation-driven/>3、給事務方法上加注解 @Transactional 2、自身構建AOP 基于注解的AOP1)對切面類的方法進行配置
2)將切面類和業務邏輯組件都加入到容器
3)告訴SpringIOC容器哪個類是切面類@Aspect
4)開啟基于注解的AOP功能
基于XML的AOP
1)對切面類的方法進行配置
2)將切面類和業務邏輯組件都加入到容器
3)告訴SpringIOC容器哪個類是切面類@Aspect
?在其他類中本類事務,才會分大小方法的事務特性。
/*** 結果:沒有任何事務特性;* * 本類調用本類事務;* 1、現象:大方法是默認REQUIRED* 小方法兩個都設置了REQUIRES_NEW,但是沒用* 2、現象:大方法是默認REQUIRES_NEW* 小方法兩個都設置了REQUIRES_NEW,但是沒用* 3、現象:大方法是默認REQUIRES_NEW* 小方法兩個都是REQUIRED,還是沒用* * 為什么?怎么調都調整不了一個回滾一個不回滾?* MulService{* BookService bs = 代理;* mulTx(){* //代理.方法()* bs.checkout();* bs.updatePrice();* }* }* * * //兩個小事務怎么設置都不行,都是一起滾;* BookService{* //* hahah(){* //自己方法;把這個方法cv過來* checkout();* //cv進haha* updatePrice();* }* }* * {* hahah(){* int price = bookDao.getPrice(isbn);//1、減用戶余額bookDao.updateBalance(price, username);//2、減圖書的庫存bookDao.updateStock(isbn);bookDao.updatePrice(isbn);* }* }* 原因:* 所有切入了事務的業務邏輯組件,在ioc容器中保存的是這個組件的代理對象;* 本類直接調用本類方法,就相當于是將本類的方法的代碼,cv進當前方法里面* 現象就是其實只有一個事務,就是hahah();* * 類編譯;* 本類方法調用本類方法,相當于將另外一個方法的實現cv過來;*/?
?
轉載于:https://www.cnblogs.com/limingxian537423/p/7252919.html
總結
以上是生活随笔為你收集整理的Aop事务小结(事务管理器和自身构建)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [03]常用正则表达式
- 下一篇: Cocos Creator—定制H5游戏