如何运用CGLIB代理模式对非接口类进行业务方法增强及横向切面改写?
- 内容介绍
- 相关推荐
本文共计1010个文字,预计阅读时间需要5分钟。
直接输出结果:
为什么 CGLIB 能代理没有接口的类
CGLIB 不靠接口,而是靠字节码生成——它在运行时动态创建目标类的子类,把非 final 方法全部重写一遍,在方法入口/出口插入拦截逻辑。这和 JDK 动态代理“实现接口+反射调用”有本质区别。
所以只要目标类允许被继承(非 final)、方法允许被覆写(非 final / static),就能被增强。
本文共计1010个文字,预计阅读时间需要5分钟。
直接输出结果:
为什么 CGLIB 能代理没有接口的类
CGLIB 不靠接口,而是靠字节码生成——它在运行时动态创建目标类的子类,把非 final 方法全部重写一遍,在方法入口/出口插入拦截逻辑。这和 JDK 动态代理“实现接口+反射调用”有本质区别。
所以只要目标类允许被继承(非 final)、方法允许被覆写(非 final / static),就能被增强。

