Spring方法攔截器MethodInterceptor

實現MethodInterceptor 接口,在調用目標對象的方法時,就可以實現在調用方法之前、調用方法過程中、調用方法之後對其進行控制。

MethodInterceptor 接口可以實現MethodBeforeAdvice接口、AfterReturningAdvice接口、ThrowsAdvice接口這三個接口能夠所能夠實現的功能,但是應該謹慎使用MethodInterceptor 接口,很可能因爲一時的疏忽忘記最重要的MethodInvocation而造成對目標對象方法調用失效,或者不能達到預期的設想。

關於含有Advice的三種對目標對象的方法的增強,可以參考文章在Spring的IOC容器中裝配AOP代理

在Spring的IOC容器中裝配AOP代理 的基礎上,比較MethodInterceptor 接口的實現與上面提及到的三種接口實現對目標對象方法的增強的功能效果。



使用Spring的Bean裝配AOP,對於MethodBeforeAdvice接口、AfterReturningAdvice接口、ThrowsAdvice接口這三個接口在XML配置文件中配置的順序對調用目標對象的方法沒有關係。

但是如果在使用上述的基礎上又使用了MethodInterceptor ,如果MethodInterceptor 配置順序不同,就可能將對目標對象方法的調用進行攔截,使得我們預期設想的使用AfterReturningAdvice對方法調用之後增強失效。

因此,如果兩類Advice同時使用,在裝配的時候,在XML配置文件中,將MethodInterceptor 的配置放在其他三種Advice的後面,使得前三種Advice先起作用,最後使用MethodInterceptor 進行攔截。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章