Spring中的Cglib代理包名为什么是org.springframework.cglib?

 2023-01-20
原文作者:杜甫先生 原文地址:https://juejin.cn/post/7003220947465420813

发现一个奇怪的问题,就是在Spring框架中,调用的Cglib包的全限定名为org.springframework.cglib,这是为什么呢?

202301012127564401.png

202301012127569632.png 并且可以看到,这两个包中的代码都是一样的,那么Spring为什么要这么做呢? 然后我就开始在网上找答案,然而网上找了很久,找到一个答案:

202301012127574783.png 突然就明白了,Spring真6皮,简单来说就是: 是spring为了让我们能够自己引入自己喜欢的cglib版本,所以他把包名换了一下,当我们再引入自己的cglib版本时就不会产生jar包冲突,就是为了避免出现这种情况:spring自己用的版本和我们想用的版本可能不一样,如果spring直接引用一个固定的版本,我们就不能用自己想用的版本引入spring项目了。 这里不禁感慨一句,Spring框架想的真的太全面了,把可扩展性考虑到了极致,奈何没文化,一句牛皮走天下。