亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

aop:after使用時有疑惑,麻煩指點下

關于aop:after,老師說是最后一場代碼,可是我無意中切換了一下xml中配置順序

https://img1.sycdn.imooc.com//5c81d13c0001dda007260399.jpg

然后test執行結果就變成了

https://img1.sycdn.imooc.com//5c81d172000174f904520288.jpg

這是什么原因呢?老師或哪位大俠指點下~謝謝~

正在回答

3 回答

aop執行方式為:前置通知==>所要增強的方法==>后置通知==>最終通知

在出現異常時會進行:前置通知==>所要增強的方法==>異常通知==>最終通知

此時的后置通知不會顯示而顯示異常通知.

而用xml進行配置時,是按照我們寫好的順序進行動態組合完成,最終和后置通知是隨著xml配置的前后順序改變的,但是經過測試不會影響前置和所要增強的方法的順序,但是會影響最終和后置通知的位置.

我認為利用環繞通知進行方法的增強(aop:around)是一個比較好的方式,不會出現順序問題.

還有就是,關于這個aop方法增強的應用就我現在所認知大多還是為了事務服務,所以通過配置 事務管理和事務注解支持

<!--?事務管理器??-->??
<bean?id="transactionManager"?class="org.springframework.jdbc.datasource.DataSourceTransactionManager">??
????<property?name="dataSource"?ref="dataSource"?/>??
</bean>??
??
<!--?開啟事務控制的注解支持?-->??
<tx:annotation-driven?transaction-manager="transactionManager"/>

將事務放入spring ioc容器中就可以解決數據的一致性和完整性問題.

3 回復 有任何疑惑可以回復我~

你的after方法是不是寫在了afterReturn方法的前面?

0 回復 有任何疑惑可以回復我~

關于底層的一些代碼可以去百度看一下,因為這有涉及到關于spring執行流程相關的問題,總的來說,我們并不太好去確定xml的前后置和最終以及通知的相關順序.

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
Spring入門篇
  • 參與學習       268802    人
  • 解答問題       1026    個

為您帶來IOC和AOP的基本概念及用法,為后續高級課程學習打下基礎

進入課程

aop:after使用時有疑惑,麻煩指點下

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號