AOP

aopalliance-x.x.jar 使用Spring Aop功能时,必须引入的一个包,主要包含两部分定义: Advice: 通知 / 拦截器(Interceptor)的祖先. JointPoint:Invocation的祖先.

cglib-x.x.jar Spring 本身有对cglib的依赖,为了避免发布时循环依赖Spring把本身需要的cglib.jar中class打包到 spring-core.jar中,所以源码中找不到相关的cglib的代码。

Enhancer:

  1. 动态生成子类以实现方法拦截。是JDK Proxy的替代,不仅限于接口,而且可以代理具体类。
  2. 通过 MethodInterceptor 实现拦截。
  3. CallbackFilter 可以决定 具体方法 采用哪个MethodInterceptor。

Comments