亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

使用Spring AOP 自動代理配置聲明式事務

系統 1888 0

我們可以使用下面兩種方式消除proxyFactoryBean的繁重配置

1.繼承parent bean

2.使用aop?自動代理

spring中的事務都是基于AOP的,我們同樣可以使用自動代理消除TransactionProxyFactoryBean的重負實例

首先,我們要做任何自動通知一樣,需要聲明一個bean,成為DefaultAdvisorAutoProxyCreator

?

< bean? id ="org.springfranework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" >
</ bean >

?DefaultAdvisorAutoProxyCreator將在應用上下文中遍歷advisor,自動用它們來代理匹配advisor的pointcut的所有bean,對于事務,應該使用advisor是TransactionAttributeSourceAdvisor

?

< bean? id ="transactionAdvisor" ?class ="org.springframework.transaction.interceptor.TransactionAttributeSourceAdvisor" >
????
< constructor-arg >
??????
< ref? bean ="transactionInterceptor" />
????
</ constructor-arg >
?
</ bean >

?

TransactionAttributeSourceAdvisor是一個羽翼豐滿的AOP Advisor,同樣,他有一個pointcut和一個advisor構成,這個pointcut是靜態方法pointcut,他根據事物屬性來源確定一個方法是否和一些事務屬性關聯,關于攔截器advisor,通過一個構造參數transactionInterceptor

???

< bean? id ="TransactionManager" ?class ="org.springframework.jdbc.datasource.DataSourceTransactionManager" >
?????????
< property? name ="dataSource" >
?????????????
< ref? bean ="dataSource" />
?????????
</ property >
</ bean > ?
< bean? id ="transactionInterceptor" ?class ="org.springframework.transaction.interceptor.TransactionInterceptor" >
??
< property? name ="transactionManager" >
????
< ref? bean ="transactionManager" /> ?
??
</ property >
??
< property? name ="transactionAttributeSource" >
????
< ref? bean ="transactionAttributeSource" />
??
</ property >
</ bean >

?

為自動代理選擇一個transactionAttributeSource

?

< bean? id ="transactionAttributeSource" ?class ="org.springframework.transaction.interceptor.NameMatchTransactionAttributeSource" >
???
< property? name ="properties" >
?????
< props >
???????
< prop? key ="get*" > PROPAGATION_SUPPORTS </ prop >
?????
</ props >
???
</ property >
</ bean >

?

關于屬性源,我們有一個更好的解決方法

?


< bean? id ="transactionAttributeSource" ?class ="org.springframework.transaction.interceptor.MethodMapTransactionAttributeSource" >
???
< property? name ="methodMap" >
???? <map>
?????????????? <entry key="com.springaction.service.CourseServiceImpl.get*">
???????????????????? <value>PROPAGATION_SUPPORT</value>
??????????????? </entry>
???????? </map>
???? ? </ property >
</ bean >

?

等等還沒有完,我們更好的選擇是使用AttributesTransactionAttributeSouce,即元數據,我們使用方法事務化和非事務化,只不過是添加合適的元數據到方法里而已



使用Spring AOP 自動代理配置聲明式事務


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 欧美妇性猛交视频 | 欧美日韩精品一区二区三区 | 日日干夜夜骑 | 国产精品视频第一区二区三区 | 日本a在线观看 | 99久久精品国产一区二区 | 欧美日本视频在线观看 | 九九视频国产 | 免费观看黄色小视频 | 97精品国产高清在线看入口 | 久久免费看视频 | 欧美成人激情在线 | 久久青草精品一区二区三区 | 亚洲在线免费 | 一级特黄a视频 | 色综合久久88色综合天天 | 亚洲精品高清视频 | 国产精品视频久久久 | 色亚洲视频| 国产精品欧美亚洲韩国日本不卡 | 离线枕边人国语在线影视 | 天天拍夜夜拍 | 国产精品欧美亚洲韩国日本久久 | 99久9在线 | 免费 | 亚州精品视频 | 亚洲五月综合网色九月色 | 日韩中文字幕在线免费观看 | 变态 调教 视频 国产九色 | 日韩视频免费在线播放 | 国产成人影院一区二区 | 成人久久精品 | 国产香蕉75在线播放 | 国产成人免费手机在线观看视频 | 亚洲精品美女国产一区 | 婷婷激情网站 | 国产婷婷综合在线视频中 | 亚洲精品综合久久中文字幕 | 国产成人精品一区二区三区 | 日本欧美小视频 | 青草青青在线视频 | 欧美顶级xxxxbbbb |