Spring CGLIB和CGLIB有什么区别?

zyl*_*zyl 7 java aop spring cglib

Spring不包含cglib依赖,cglib和spring cglib都有Enhancer类,一个是net.sf.cglib.proxy.Enhancer另一个org.springframework.cglib.proxy,它们之间有什么区别?

Mic*_*ski 5

这称为重新打包:项目不使用某些库作为依赖项,而是将依赖项复制为自己项目的一部分,并将其放置在不同的包中。

这样做的原因是使用 Spring 的项目可能想要使用 cglib 本身。如果 Spring 有特定版本的 cglib 作为依赖项,则使用 Spring 的项目不可能选择不同的版本。但是如果Spring使用重新打包的cglib并且位于不同的包中,则不存在版本冲突,并且项目可以根据需要使用任何版本的cglib。

一些项目以类似的方式重新打包 Guava、Netty 或其他流行的库。