1.JDK 动态代理
1.JDK 动态代理
动态代理是 jdk 提供的一个高级功能。增强的类须实现接口。使用到 Object obj = Proxy.newProxyInstance(loader, ints, invocationHandler)。
示例代码:
@Test public void enhance() { final Iuser user = new Cuser();//增强 Cuser 类,实现的事 Iuser 接口。 Iuser euser = (Iuser) Proxy.newProxyInstance(user.getClass().getClassLoader(), user.getClass().getInterfaces(), new InvocationHandler() { public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { // TODO Auto-generated method stub System.out.println("增加。。。"); Object object = method.invoke(user, args);//调用 Cuser 类原始方法功能。 return object; } });//获取到一个增强后的对象 euser.run();//调用原始方法...... euser.goHome();//调用原始方法,查看效果 }
enhance