关于Spring的两种代理方式

本文探讨了动态代理的原理,包括JDK动态代理的接口实现和CGLIB代理的灵活对接。对比两者性能与使用场景,解析了JDK代理在单例模式中的优势,以及CGLIB在不需接口时的应用。

代理方式:

    1、jdk自带的动态代理。

    2、Spring框架自己提供的CGLIB的方式。

什么是代理呢?

    从字面意思来看,代理比较好理解,无非就是代为处理的意思。举个例子,你在上大学的时候,总是喜欢逃课。因此,你拜托你的同学帮你答到,而自己却窝在宿舍玩游戏... 你的这个同学恰好就充当了代理的作用,代替你去上课。

什么是动态代理呢?

    就从上面代课的来讲,就是你加了一个代课群,需要代课找群主,那么群主就是代理,根据你课程的需求来找合适的人给你代课而不是固定的一个人,合适的人就是实际操作业务的代码。

JDK动态代理:

    如果目标对象实现了接口,默认情况下会采用JDK的动态代理,实现接口的例子就如上面的代课群一样,由群主这个接口来调度,还可以进行方法增强

CGLib动态代理:

    不需要实现接口,采用Spring的代理方式,那么群主一个人来接单并代课。

区别:

    JDK动态代理要比cglib代理执行速度快,但性能不如cglib好。

    JDK的动态代理的

    一般单例模式用cglib比较好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值