import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; interface Host{ void maifang(); } class Kg implements Host{ @Override public void maifang() { System.out.println("我是kg,我终于买房了!"); } } //中介(代理) class Proxy implements Host{ //代理对象 private Kg kg; public Proxy(Kg kg){ this.kg = kg; } @Override public void maifang() { System.out.println("我是中介,你买房开始交给我了!"); kg.maifang(); System.out.println("我是中介,你买房结束了!"); } } //jdk动态代理 class JdkProxy implements InvocationHandler{ private Object target; public JdkProxy(Object target){ this.target=target; } @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { System.out.println("我是中介,你买房开始交给我了!!!"); Object invoke = method.invoke(target, args); System.out.println("我是中介,你买房结束了!!!!"); return invoke; } } public class Test001 { public static void main(String[] args) { // Host host = new Proxy(new Kg()); // host.maifang(); Kg kg= new Kg(); JdkProxy jdkProxy = new JdkProxy(kg); Host host = (Host) java.lang.reflect.Proxy.newProxyInstance(kg.getClass().getClassLoader(), kg.getClass().getInterfaces(), jdkProxy); host.maifang(); } }
SpringAOP学习笔记(3)
猜你喜欢
转载自blog.csdn.net/huermiss/article/details/80279016
今日推荐
周排行