aop前传之代理

一。jdk提供proxy类对目标对象实现代理,简单的说对方法的调用交给代理对象来操作。

代理目标

代理的具体实现:

代理测试;

简单说:利用proxy生成一个委托类实现代理。这个委托类是目标类的接口的实现,内部回调函数实际上是委托类对目标接口的重写方法。

注意点,目标类必须是有接口的,回调类必须是inocationHandler的实现类。

二。对与没有实现接口的类,要实现代理,可以用到第三方的cglib框架实现代理。spring和hibernate都在用的。CGLIB(Code Generation Library)是一个开源项目!是一个强大的,高性能,高质量的Code生成类库,它可以在运行期扩展Java类与实现Java接口。

简单说:委托类通过继承目标类重写所以非final方法,回调函数就实际重写的方法。

注意:回调类是接口MethodInterceptor实现类。

补充:

这样回调属于aop的一种概念

原文地址:https://www.cnblogs.com/straybirds/p/5109387.html