增强

 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();//调用原始方法,查看效果
}
View Code

enhance

猜你喜欢

转载自www.cnblogs.com/argor/p/9546506.html