翔仔,感觉这三种织入方式的底层原理我还是有点混淆:
我说下我的理解:
JDK动态代理:(如果理解错误麻烦纠正)
1.通过classLoader加载被代理类的class文件并获得二进制字节流
2.修改字节流,将切面逻辑织入
3.在内存中生成class对象
4.通过class对象由反射生成代理类实例
CGLIB:
我看课程好像也是修改字节码,但是和JDK的区别在哪我不是很清楚
CGLIB生成代理类实例不需要用到反射吗?
麻烦翔仔详细的解释一下
LTW:
似乎也是在类加载的时候修改了字节码生成的代理类,但是与前两者的区别在哪?
这三个织入方法的原理我已经懵了,麻烦翔仔详细的解释一下把,不然真的不太懂三者原理的区别
另外一个重要的问题就是:JDK动态代理和CGLIB是否也属于加载期织入?
或者其他有大神可以详细介绍下区别吗?