課程
/后端開發
/Java
/Spring入門篇
關于aop:after,老師說是最后一場代碼,可是我無意中切換了一下xml中配置順序
然后test執行結果就變成了
這是什么原因呢?老師或哪位大俠指點下~謝謝~
2019-03-08
源自:Spring入門篇 5-4
正在回答
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容器中就可以解決數據的一致性和完整性問題.
你的after方法是不是寫在了afterReturn方法的前面?
關于底層的一些代碼可以去百度看一下,因為這有涉及到關于spring執行流程相關的問題,總的來說,我們并不太好去確定xml的前后置和最終以及通知的相關順序.
舉報
為您帶來IOC和AOP的基本概念及用法,為后續高級課程學習打下基礎
2 回答對spring的一點疑惑
2 回答@Named疑惑
1 回答關于Component有一點疑問
1 回答使用byName的時候,service.say(...)方法中dao.say應該是空指針異常吧?
1 回答aware有使用意義嗎
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2019-03-13
aop執行方式為:前置通知==>所要增強的方法==>后置通知==>最終通知
在出現異常時會進行:前置通知==>所要增強的方法==>異常通知==>最終通知
此時的后置通知不會顯示而顯示異常通知.
而用xml進行配置時,是按照我們寫好的順序進行動態組合完成,最終和后置通知是隨著xml配置的前后順序改變的,但是經過測試不會影響前置和所要增強的方法的順序,但是會影響最終和后置通知的位置.
我認為利用環繞通知進行方法的增強(aop:around)是一個比較好的方式,不會出現順序問題.
還有就是,關于這個aop方法增強的應用就我現在所認知大多還是為了事務服務,所以通過配置 事務管理和事務注解支持
將事務放入spring ioc容器中就可以解決數據的一致性和完整性問題.
2020-01-05
你的after方法是不是寫在了afterReturn方法的前面?
2019-03-13
關于底層的一些代碼可以去百度看一下,因為這有涉及到關于spring執行流程相關的問題,總的來說,我們并不太好去確定xml的前后置和最終以及通知的相關順序.