cglib
文章平均质量分 81
图灵学院架构师
这个作者很懒,什么都没留下…
展开
-
cglib底层源码分析(三)
前⾯介绍到MethodProxy对象,表示⼀个⽅法的代理,⽐如UserSerivce中的test()⽅法,在对应的代理 类中会有对应的两个⽅法: ⽽MethodProxy对象代理就是这两个⽅法,⽐如: 我们先来看⼀下MethodProxy对象的创建,创建的⼊⼝在代理类中:对应的⽅法为: 可以发现MethodProxy对象中主要有三个属性: 1. sig1,表示test⽅法 2. sig2,表示CGLIB$test$0⽅法 3. createInfo,表示Us...原创 2022-04-14 19:33:07 · 268 阅读 · 0 评论 -
cglib底层源码分析(⼆)
其实我们如果看到了cglib所⽣成的代理类之后,其实就不难猜测,cglib是如何去⽣成代理类了,我们看 ⼀个完整的代理类:我们发现,UserService代理类既继承了UserService类,也实现了Factory接⼝,从⽽代理中就需要去 实现Factory接⼝中的⼏个⽅法:我们可以发现newInstance()⽅法会重新⽣成⼀个代理对象,setCallbacks()和getCallbacks()可以⽤来 设置或获取增强逻辑。我们还发现,不仅只...原创 2022-04-12 19:16:43 · 416 阅读 · 0 评论 -
cglib底层源码分析(⼀)
cglib是⼀种动态代理技术,可以针对类来⽣成⼀个代理对象。 ⽐如,我们现有⼀个UserService类:现在利⽤cglib对UserService类中的test()⽅法进⾏增强:在分析底层源码实现之前,我们先来试试,cglib能否代理接⼝,定义⼀个UserInterface接⼝然后利⽤cglib来代理⼀个接⼝:也是可以正常运⾏的,那么⽤cglib代理⼀个类和代理⼀个接⼝的底层有什么区别呢?我们继续分析。 我们知道,既然要⽣成⼀个代理对象,那么就肯定需要⼀个代理...原创 2022-04-10 19:15:58 · 469 阅读 · 1 评论