cglib动态代理步骤:
1、创建目标类(被代理类),与JDK动态代理不同,cglib的目标类可以不实现接口,
因为cglib实现代理是通过将目标类设置成代理类的父类,使用的是继承机制,所以目标类不能是final类,否则会报错;
java.lang.IllegalArgumentException: Cannot subclass final class proxy.TargetDynamicClass
2、创建相应的方法拦截器,实现MethodInterceptor接口,实现intercept方法,用来拦截目标类的方法;
3、在方法拦截器中创建Echancer对象,Echancer是用来创建代理对象,并为其设置参数,
创建生成代理对象的方法,用Echancer对象生成代理对象;
4、使用代理对象调用方法。
/**
* @Description: Cglib方式动态代理
*/
public class CglibDynamicProxy {
@Test
public void test(){
TargetDynamicClass proxyObj = (TargetDynamicClass)