Java动态代理简单达成
发布时间:2021-11-24 13:21:35 所属栏目:教程 来源:互联网
导读:Java动态代理简单实现: package com.dynamic.proxy; public class ProxyDemo { public static void main(String[] args) throws SecurityException, NoSuchMethodException { LogHandler logHandler = new LogHandler(); IHello hello = (IHello)logHandler
|
Java动态代理简单实现: package com.dynamic.proxy; public class ProxyDemo { public static void main(String[] args) throws SecurityException, NoSuchMethodException { LogHandler logHandler = new LogHandler(); IHello hello = (IHello)logHandler.bind(new HelloImp()); hello.toHello("cross"); hello.toHello1("cross"); } } package com.dynamic.proxy; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; public class LogHandler implements InvocationHandler { private Object deledate; public Object bind(Object deledate){ this.deledate = deledate; Object proxy = Proxy.newProxyInstance(deledate.getClass().getClassLoader(), deledate.getClass().getInterfaces(), this); return proxy; } public Object invoke(Object proxy, Method method, Object[] obj) throws Throwable { doBefore(); Object result = method.invoke(deledate, obj); doAfter(); return result; } private void doBefore() { System.out.println("before...."); } private void doAfter() { System.out.println("after...."); } } package com.dynamic.proxy; public interface IHello { public void toHello(String name); public void toHello1(String name); } package com.dynamic.proxy; public class HelloImp implements IHello { public void toHello(String name) { System.out.println("method hello:" + name); } public void toHello1(String name) { System.out.println("method hello1:" + name); } } ![]() (编辑:文章分享网_茂名站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


