如何理解[spring会自动在JDK动态代理和CGLIB之间转换]?

我们都指定spring的动态代理有两种方式,分别是jdk代理和cglib代理,spring动态代理的策略是:

1、如果目标对象实现了接口,默认情况下会采用JDK的动态代理实现AOP
2、如果目标对象实现了接口,可以强制使用CGLIB实现AOP
3、如果目标对象没有实现了接口,必须采用CGLIB库,spring会自动在JDK动态代理和CGLIB之间转换。

当一个对象没有接口的时候,只能用cglib啊,为什么spring还能自动切换呢?

1个回答

这不就是自动切换吗?它判断目标对象是否实现了接口,实现了就用JDK没实现就用cglib,这不正是自动切换吗?你是不是有误解

monica10617
陪公主读书 是的,我误解这句话了,以为在只能用cglib的时候,spring仍然能够切换。
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!