afrag  
          記錄學習和成長的歷程
          日歷
          <2005年11月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910
          統計
          • 隨筆 - 9
          • 文章 - 5
          • 評論 - 2
          • 引用 - 0

          導航

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          文章檔案

          搜索

          •  

          積分與排名

          • 積分 - 10292
          • 排名 - 2368

          最新評論

          閱讀排行榜

          評論排行榜

           

          在Spring 的AOP中,如果一個Proxy同時實現MethodBeforeAdvice、AfterReturningAdvice和MethodInterceptor接口,那么這三個Advice的執行順序是什么樣的呢?
          經過試驗,是和xml文件中的定義順序有關的。
          如果Proxy的接口實現定義為
          ?????
          ?????????
          ??????????? MethodBeforeAdvice
          ??????????? AfterReturningAdvice
          ??????????? MethodInterceptor
          ?????????

          ?????

          那么執行的結果是
          MethodBeforeAdvice

          MethodInterceptor: before call

          Really method excuting

          MethodInterceptor: after call

          AfterReturningAdvice

          也就是說,執行順序是:MethodBeforeAdvice,MethodInterceptor的調用前的部分,目標方法,MethodInterceptor的調用后的部分,AfterReturningAdvice。

          如果proxy的定義是
          ?????
          ?????????
          ??????????? MethodBeforeAdvice
          ??????????? MethodInterceptor
          ??????????? AfterReturningAdvice
          ?????????

          ?????

          執行的結果是
          MethodBeforeAdvice

          MethodInterceptor: before call

          Really method excuting

          AfterReturningAdvice

          MethodInterceptor: after call
          也就是說,執行的順序是:MethodBeforeAdvice,MethodInterceptor的調用前的部分,目標方法,AfterReturningAdvice,MethodInterceptor的調用后的部分。

          如果proxy的定義是
          ?????
          ?????????
          ??????????? MethodInterceptor
          ??????????? MethodBeforeAdvice
          ??????????? AfterReturningAdvice
          ?????????

          ?????

          執行的結果是:
          MethodInterceptor: before call

          MethodBeforeAdvice

          Really method excuting

          AfterReturningAdvice

          MethodInterceptor: after call
          也就是說,執行的順序是:MethodInterceptor的調用前的部分,MethodBeforeAdvice,目標方法,AfterReturningAdvice,MethodInterceptor的調用后的部分。
          以上的順序是在springframework 1.2.5中測試的。

          posted on 2005-11-02 18:10 afrag 閱讀(3729) 評論(1)  編輯  收藏 所屬分類: Java隨想
          評論:
          • # re: Spring AOP中MethodBeforeAdvice、AfterReturningAdvice和MethodInterceptor的執行順序  jadmin Posted @ 2009-08-29 00:33
            是這樣的嗎?  回復  更多評論   

           
          Copyright © afrag Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 延边| 调兵山市| 福州市| 礼泉县| 武宣县| 南康市| 航空| 南京市| 十堰市| 蓝田县| 万荣县| 安吉县| 嫩江县| 长乐市| 无为县| 昭觉县| 河源市| 镇雄县| 天全县| 遂宁市| 剑阁县| 临沭县| 宝清县| 霍林郭勒市| 五大连池市| 田林县| 伊川县| 原平市| 台北市| 垫江县| 溧阳市| 高平市| 邵阳市| 鄂托克前旗| 乌鲁木齐县| 乌鲁木齐市| 东台市| 潮州市| 禄丰县| 外汇| 仙居县|