java动态代理详解
来源:互联网 发布:软件运营方案 编辑:程序博客网 时间:2024/06/01 03:57
代理模式示例代码:
public interface Subject { public void doSomething(); } public class RealSubject implements Subject { public void doSomething() { System.out.println( "call doSomething()" ); } } public class ProxyHandler implements InvocationHandler { private Object proxied; public ProxyHandler( Object proxied ) { this.proxied = proxied; } public Object invoke( Object proxy, Method method, Object[] args ) throws Throwable { //在转调具体目标对象之前,可以执行一些功能处理 //转调具体目标对象的方法 return method.invoke( proxied, args); //在转调具体目标对象之后,可以执行一些功能处理 } }
动态代理的实现类:
import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; import sun.misc.ProxyGenerator; import java.io.*; public class DynamicProxy { public static void main( String args[] ) { RealSubject real = new RealSubject(); Subject proxySubject = (Subject)Proxy.newProxyInstance(Subject.class.getClassLoader(), new Class[]{Subject.class}, new ProxyHandler(real)); proxySubject.doSomething(); //write proxySubject class binary data to file createProxyClassFile(); } public static void createProxyClassFile() { String name = "ProxySubject"; byte[] data = ProxyGenerator.generateProxyClass( name, new Class[] { Subject.class } ); try { FileOutputStream out = new FileOutputStream( name + ".class" ); out.write( data ); out.close(); } catch( Exception e ) { e.printStackTrace(); } } }
0 0
- Java动态代理详解
- java动态代理详解
- Java动态代理详解
- java动态代理详解
- 详解java动态代理
- java 动态代理详解
- Java动态代理详解
- java动态代理详解
- JAVA动态代理详解
- Java动态代理详解
- Java动态代理详解
- java动态代理详解
- Java动态代理详解
- java动态代理详解
- Java动态代理详解
- Java动态代理详解
- Java动态代理详解
- java动态代理详解
- [Android]简单的在线翻译应用
- 1038. Recover the Smallest Number (30)好题
- maven 工程 dubbo服务的xml配置文件报错的问题
- iOS AutoLayout自动布局中级开发教程(5)-修改约束的值,延迟加载
- jstree父节点与子节点操作互不影响
- java动态代理详解
- 详解JBOSS系列一(利用JNDI,EJB远程调用本地的Bean)
- 常用SQL语句收藏 <二>
- C++浮点型输出保留小数位
- python Built-in Functions(python内置函数)
- 突击Mercurial SCM(HG)11---自搭Server后push遇到的问题
- git冲突的解决
- win7系统如何在防火墙里开放端口
- Java线程