wally

cglib的使用

爱⌒轻易说出口 提交于 2021-02-12 04:45:56
cglib大名在java界如雷贯耳,众多优秀的开源项目均使用其来实现各自的功能(spring aop,hibernate等等),这里主要简单介绍一下cglib的使用,对比一下java原生的proxy还有javaassist. 说到cglib第一印象就是动态代理(啥是动态代理?请百度<设计模式>),没错,这是它牛逼的功能之一, 使用cglib构建动态代理核心类就是Enhancer,作用如其名:增强.它能够对目标类的方法进行增强.上代码: /** * Created by wally on 3/1/18. */ public abstract class Animal { private String name; public Animal() { } public Animal(String name) { this .name = name; } public abstract void eat(); public void live(){ System.out.println( "i'm " + name); eat(); } } public class Duck extends Animal { public Duck() { } public Duck(String name) { super (name); } @Override public void eat() {