java 代理demo

来源:互联网 发布:网络监控网线传输距离 编辑:程序博客网 时间:2024/06/06 02:26
public interface UserDAO {    public void save(User u);}
public class UserDAOImpl implements UserDAO {    @Override    public void save(User u) {        System.out.println("a user saved!");    }}
package com.zb.hander;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;public class  Myhandler implements InvocationHandler {    private Object proxy;    public Myhandler(Object proxy) {        this.proxy=proxy;    }    @Override    public Object invoke(Object p, Method method, Object[] args)            throws Throwable {        System.out.println("start in...");        Object o=  method.invoke(proxy, args);        return o;    }}
public class User {    private Integer id;    private String name;    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }}
public class ProxyTest {    @Test    public void test() {        UserDAOImpl impl = new UserDAOImpl();        UserDAO userDAO =(UserDAO) Proxy.newProxyInstance(UserDAO.class.getClassLoader(),                new Class[] { UserDAO.class }, new Myhandler(impl));        userDAO.save(new User());    }}

这里写图片描述

原创粉丝点击