首页 > 代码库 > cglib动态代理(需导入cglib-nodep-2.1_3.jar)

cglib动态代理(需导入cglib-nodep-2.1_3.jar)

public interface AnimalInterface {    public void cry();}
public class AnimalImpl implements AnimalInterface {    public void cry() {        // TODO Auto-generated method stub        System.out.println("crying");    }}
public class MyCglib implements MethodInterceptor {    private Object proxied;    private MyCglib(Object proxied) {        this.proxied = proxied;    }    public static Object getProxy(Object proxied) {        MyCglib cglib = new MyCglib(proxied);        Enhancer enhancer = new Enhancer();        enhancer.setSuperclass(proxied.getClass());        enhancer.setCallback(cglib);        return enhancer.create();    }    public Object intercept(Object obj, Method method, Object[] args,            MethodProxy proxy) throws Throwable {        Object ret;        System.out.println("Before Method Invoke");        ret = method.invoke(proxied, args);        System.out.println("After Method Invoke");        return ret;    }}
public class Test {    public static void main(String[] args) {        AnimalImpl animal = (AnimalImpl) MyCglib.getProxy(new AnimalImpl());        animal.cry();    }}

 

cglib动态代理(需导入cglib-nodep-2.1_3.jar)