代理接口
代理类
代理工厂
测试类
public interface PersonService {
public void save(String name,Integer persionId);
public String getName(Integer persionId);
}
代理类
public class PersonServiceImpl implements PersonService {
public String getName(Integer persionId) {
// TODO Auto-generated method stub
return "pan";
}
public void save(String name, Integer persionId) {
// TODO Auto-generated method stub
System.out.println("我是 save 方法!");
}
}
代理工厂
public class ProxyFactory implements InvocationHandler {
public Object targetObj;
public Object createProxyObject(Object targetObj) {
this.targetObj = targetObj;
ClassLoader loader = targetObj.getClass().getClassLoader();
return Proxy.newProxyInstance(loader, targetObj.getClass().getInterfaces(),
this);
}
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
Object result = method.invoke(targetObj, args);
return result;
}
}
测试类
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ProxyFactory factory = new ProxyFactory();
PersonService service = (PersonService)factory.createProxyObject(new PersonServiceImpl());
service.save("dsfds",11);
}
}