为了账号安全,请及时绑定邮箱和手机立即绑定

预编译、运行期代理底层原理是什么?

预编译、运行期代理底层原理是什么?

正在回答

1 回答

在Spring 中,引入了AspectJ的语法,他本质上使用的是动态代理的方式.

动态代理,分两种实现模式:

1.使用接口(动态代理)

如果被代理的对象是面向接口编程的,那么Spring直接使用实现这些接口,然后把需要插入的内容在这个接口上下文中插入

2.使用继承(CGLIB)

如果被代理的对象没有基于接口编程,那么Spring会调用cglib库,通过子类继承的方式,动态插入需要的内容,并且调用父类的方法实现

cglib内部拥有一个小的字节码处理框架asm,来转换字节码生成新的类.所以spring调用了cglib,相当于生成了一个被代理对象的子类,来取代被代理对象.


2 回复 有任何疑惑可以回复我~
#1

610666618 提问者

非常感谢!
2015-12-12 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

预编译、运行期代理底层原理是什么?

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号