public class CutomerService implements ICutomerService{
@Override
public void test(){
System.out.println("customer...test...");
}
public static void main(String[] args) {
CutomerService target = new CutomerService();
/**
* cglib实现
*/
Enhancer enhancer = new Enhancer();
enhancer.setSuperclass(CutomerService.class);
enhancer.setCallbacks(new Callback[]{new MethodInterceptor() {
@Override
public Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable {
System.out.println("cglib...start...");
Object result = methodProxy.invoke(target, objects);
System.out.println("cglib...after...");
return result;
}
}});
CutomerService proxy = (CutomerService) enhancer.create();
proxy.test();
/**
* jdk实现
*/
Object proxy = Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), new InvocationHandler() {
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
System.out.println("jdk...start...");
Object result = method.invoke(target, args);
System.out.println("jdk...start...");
return result;
}
});
ICutomerService cutomerService = (ICutomerService) proxy;
cutomerService.test();
}
}
动态代理(JDK、CGLIB)
最新推荐文章于 2024-06-29 11:59:11 发布