动态代理实例
本文出自“陈海涛的博客”,转载请务必保留此出处.
http:///132.html
代理: 对某一对象提供代理对象,由代理对象控制该对象的引用.
静态代理: 对象和代理对象都应实现统一接口
动态代理: 代理对象实现InvocationHandler接口
动态代理相关类:
java.lang.reflect.Proxy
java.lang.reflect.InvocationHandler
java.lang.reflect.Method
定义一个统一接口
public interface UserInterface { public String getName(); public String getAddress(); }实现类:
public class Chenhaitao implements UserInterface { public String getName(){ return "chenhaitao"; } public String getAddress(){ return "beijing"; } }代理类:
public ChenhaitaoProxy implements InvocationHandler { private UserInterface userInterface; public void ChenhaitaoProxy (UserInterface userInterface){ this.userInterface=userInterface; } public UserInterface getUserInterface (){ return (UserInterface) Proxy.newProxyInstance(UserInterface.class.getClassLoader, new Class[]{ UserInterface.class }, this ); } @Override public Object invoke(Object proxy,Method method,Object[] args) throws Throwable{ if(method.getName().equals("getAddress")){ return this.getAddress(); }else{ return method.invoke(myinterface, args); } } public String getAddress(){ return ""; } }使用:
public static void main(String[] args){ ChenhaitaoProxy proxy=new ChenhaitaoProxy(new Chanhaitao()); UserInterface userInterface =proxy.getUserInterface(); userInterface.getName(); // chenhaitao userInterface.getAddress(); // }Java动态代理的两种实现方法:JDK动态代理和CGLIB动态代理jdk静态代理和动态代理
静态代理、动态代理,以及动态代理的调用说明静态代理和动态代理
#yyds干货盘点# 设计模式之静态代理,jdk动态代理,cglib动态代理的区别jdk静态代理和动态代理
代理模式-动态代理详解(JDK动态代理和CGLIB动态代理)jdk cglib动态代理
代理模式-动态代理(基于接口,JDK动态代理)jdk动态代理和cglib动态代理
Java 动态代理的理解与Cglib动态代理实现cglib代理和jdk动态代理区别
代理模式-静态代理模式 代理模式-动态代理(基于接口,JDK动态代理)动态代理是代理模式吗
【设计模式】代理模式 ( 动态代理使用流程 | 创建目标对象 | 创建被代理对象 | 创建调用处理程序 | 动态创建代理对象 | 动态代理调用 )动态代理是代理模式吗