Spring框架学习[创建AOP代理对象并对目标对象切面拦截](十)

2014-11-24 03:05:49 · 作者: · 浏览: 11
System.arraycopy(mainCallbacks, 0, callbacks, 0, mainCallbacks.length); System.arraycopy(fixedCallbacks, 0, callbacks, mainCallbacks.length, fixedCallbacks.length); this.fixedInterceptorOffset = mainCallbacks.length; } //如果目标不是静态的,或者通知链不被冻结,则使用AOP主要的通知 else { callbacks = mainCallbacks; } return callbacks; }

通过上面对CGLIB创建代理和获取回答通知的源码分析,我们了解到CGLIB在获取代理的通知时,会创建DynamicAdvisedInterceptor类,当应用调用目标对象的方法时,不是直接调用目标对象,而是通过CGLIB创建的代理对象来调用目标对象,在调用目标对象的方法时,触发DynamicAdvisedInterceptor的intercept回调方法对目标对象进行处理,CGLIB回调拦截器链的源码如下:

[java] vi