- https://www.jianshu.com/p/abb674bb418c?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
- http://www.cnblogs.com/dreamroute/p/5273888.html
- https://blog.csdn.net/hintcnuie/article/details/10954631
静态代理 动态代理
-
静态 实际上就是大包小,然后在大的中把每个小的接口都覆盖下,添加上自己的东西。类名和方法名都固定
-
动态 如果每个小的每个方法都有个大的来包,很麻烦很浪费。所以统一用invoke方法来覆盖了小的所有的方法,类名和方法名都不固定
-
动态代理分为两种jdk 代理和cglib代理
-
jdk代理,用匿名类实现跟小的同样的接口,如果没接口,白搭
-
cglib是生成要小的子类,如果小的是final,白搭,但又有哪些人会把自己的class声明成final
-
spring 默认是jdk代理
https://blog.csdn.net/boonya/article/details/12689735
- cglib则需要两个jar
asm.jar – CGLIB的底层实现
cglib.jar – CGLIB的核心jar包。
网友评论