cglib is a powerful, high performance and quality Code Generation Library, It is used to extend JAVA classes and implements interfaces at runtime.
cglib是Code Generation Library的缩写。
cglib依赖于ASM库。
Hibernate主要是利用cglib生成pojo的子类并override get方法来实现lazy loading机制,Spring则是利用cglib来实现动态代理。
而JDK的动态代理机制要求有接口才行,这样就强制我们的pojo实现某个接口。
这里还是提供一个cglib的入门级的示例:
MyClass.java:
Main.java:
打印结果为:
Java代码
public void MyClass.print() intercepted!
I'm in MyClass.print!
这个示例就基本上实现了日志AOP的功能,很简单吧。