问题遇到的现象和发生背景
当我在自定义代理类是陷入了死循环
操作环境、软件版本等信息
//设置绑定关系
public Object newProxyInstance(Object targetObject) {
this.targetObject = targetObject;
Enhancer enhancer = new Enhancer();
//设置代理类的父类(目标类)
enhancer.setSuperclass(this.targetObject.getClass());
//设置回调函数
enhancer.setCallback(this);
//创建子类(代理类)
return enhancer.create();
}
@Override
public Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable {
Object result = null;
try {
System.out.println("通过Cglib动态代理" + method.getName() + "打印日志 begin");
result = method.invoke(o, objects);
System.out.println("通过Cglib动态代理" + method.getName() + "打印日志 end");
} catch (Throwable e) {
e.printStackTrace();
}
return result;
}