课程
/后端开发
/Java
/Spring入门篇
预编译、运行期代理底层原理是什么?
2015-12-11
源自:Spring入门篇 5-1
正在回答
在Spring 中,引入了AspectJ的语法,他本质上使用的是动态代理的方式.
动态代理,分两种实现模式:
1.使用接口(动态代理)
如果被代理的对象是面向接口编程的,那么Spring直接使用实现这些接口,然后把需要插入的内容在这个接口上下文中插入
2.使用继承(CGLIB)
如果被代理的对象没有基于接口编程,那么Spring会调用cglib库,通过子类继承的方式,动态插入需要的内容,并且调用父类的方法实现
cglib内部拥有一个小的字节码处理框架asm,来转换字节码生成新的类.所以spring调用了cglib,相当于生成了一个被代理对象的子类,来取代被代理对象.
610666618 提问者
举报
为您带来IOC和AOP的基本概念及用法,为后续高级课程学习打下基础
1 回答AspectJ是编译期的AOP,在编译期进行代码检查,并匹配连接点和切入点的代价是非常昂贵的。这是老师ppt的原话,我有个疑问,在编译期进行代码检查,并匹配连接点和切入点为什么代价就大了?这个代价具体指的是什么?是时间?是系统资源?还是what?
2 回答代理方式是什么啊?
3 回答请问什么是代理模式,学代理模式的前置课程是什么?
1 回答这是代理模式中的静态代理?
2 回答scope-proxy指定代理是什么意思
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号