jdk和cglib代理方式属于是老生常谈了,这里就不说了,我们说一下特别的。
我们都知道cglib是针对于类,jdk是针对于接口,
cglib在目标类被代理后会自动生成目标类的子类,也就是xxxclass$$EnhancerByCGLIB$$c03f68c4.class
jdk代理后会自动生成目标接口的实现,也就是$Proxy0.class
我们平时代码在编译过程中是不会生成代理类的class文件,只有在运行中才会生成
我们可以通过在启动类中设置代理类生成路径
// 设置CGLib代理类的生成位置
System.setProperty(DebuggingClassWriter.DEBUG_LOCATION_PROPERTY, "./cg");
// 设置JDK代理类的输出
System.getProperties().put("sun.misc.ProxyGenerator.saveGeneratedFiles", "true");