2015-06-25 75 views
1

我是AOP的新手,我想了解Method Interceptor和MethodAdvice(即MethodBeforeAdvice或MethodAfterAdvice)之间的区别。对我来说,看起来两个人都在做同样的事情,即在方法调用时调用。什么时候应该使用MethodInterceptor与MethodAdvice。Spring AOP方法拦截器vs方法建议

+0

也许你应该看看这个问题,如果你使用弹簧。 [interceptors-vs-aspects-in-spring] [1] [1]:http://stackoverflow.com/questions/3599976/interceptors-vs-aspects-in-spring –

回答

1

在org.aopalliance.interceptInterceptor接口(通过的MethodInterceptor实现)的定义看看:

public interface Interceptor extends Advice { 
} 

可以很容易地看到,一个MethodInterceptor实际上是一个建议。 在@Aspect类和这样一个Interceptor中定义一个建议的唯一区别是Interceptor实现可以在运行时添加到Spring AOP代理中或者从Spring AOP代理中移除(将它们转换为'Advised'),而您正在说的建议about是一个更静态的构造。但是它们仍然对Spring AOP至关重要,因为它们的存在告诉Spring应用程序上下文启动期间哪些bean将包装在代理对象中。