Spring中默认使用jdk代理还是cglib代理?

jdk代理(基于接口):如果目标实现了接口,那么默认使用jdk代理。
cglib代理(基于类):如果目标没有实现接口,那么默认使用cglib代理。

spring中的配置proxy-target-class 属性:
proxy-target-class:true 设置基于类的代理,cglib代理。
proxy-target-class:false 设置基于接口的代理,jdk代理,但如果目标没有实现接口,使用cglib代理。

如果当前类方法上有 @Cacheable @Transactional 注解或者 被aop加强的话 生成的是代理对象,具体哪种代理看上面的区分,如果没有上述条件的话那么创建的对象是 原始对象。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容