java 动态代理
2017-07-08 12:33
120 查看
参考:
http://blog.csdn.net/heyutao007/article/details/49738887
http://blog.csdn.net/cuigaochong/article/details/46277219
http://layznet.iteye.com/blog/1182924
代理模式类图如下:
为某个对象提供一个代理,以控制对这个对象的访问。代理类和委托类有共同的父类或父接口,这样在任何使用委托类对象的地方都可以使用代理对象代替。代理类负责请求的预处理,过滤,将请求分派给委托类处理、已经委托类执行完请求后的后续处理。
根据代理类的生成时间不同可以将代理分为静态代理和动态代理两种。
静态代理,是在编译阶段就已经确定了代理哪个类。
动态代理,是在执行阶段才确定,用的是JVM的反射机制。
下面主要看一个动态代理的例子,可以实现AOP(面向切面编程)。
首先看下代码结构:
下面是客户类通过动态代理类执行方法的代码:
执行结果如下:
——before method: getName
—–getName—–
—–after method: getName
——before method: getCount
—–after method: getCount
count: 100
我想要代理service对象,例子中有两个service,他们是方法真正执行的地方,是委托类。MyProxy用于生产代理类。MyInvocationHandler是调用处理器,在这里面定义调用前和调用后的处理,将执行委托到委托类。
代码地址:https://github.com/zhouna/invocation.git
http://blog.csdn.net/heyutao007/article/details/49738887
http://blog.csdn.net/cuigaochong/article/details/46277219
http://layznet.iteye.com/blog/1182924
代理模式类图如下:
为某个对象提供一个代理,以控制对这个对象的访问。代理类和委托类有共同的父类或父接口,这样在任何使用委托类对象的地方都可以使用代理对象代替。代理类负责请求的预处理,过滤,将请求分派给委托类处理、已经委托类执行完请求后的后续处理。
根据代理类的生成时间不同可以将代理分为静态代理和动态代理两种。
静态代理,是在编译阶段就已经确定了代理哪个类。
动态代理,是在执行阶段才确定,用的是JVM的反射机制。
下面主要看一个动态代理的例子,可以实现AOP(面向切面编程)。
首先看下代码结构:
下面是客户类通过动态代理类执行方法的代码:
执行结果如下:
——before method: getName
—–getName—–
—–after method: getName
——before method: getCount
—–after method: getCount
count: 100
我想要代理service对象,例子中有两个service,他们是方法真正执行的地方,是委托类。MyProxy用于生产代理类。MyInvocationHandler是调用处理器,在这里面定义调用前和调用后的处理,将执行委托到委托类。
代码地址:https://github.com/zhouna/invocation.git
相关文章推荐
- 使用JAVA中的动态代理实现数据库连接池 Z
- 使用Java动态代理实现AOP
- 使用JAVA中的动态代理实现数据库连接池
- 使用JAVA中的动态代理实现数据库连接池
- 用Java动态代理实现AOP
- Java初学者如何迈出AOP第一步--使用Java 动态代理实现AOP
- Java动态代理实现AOP
- AOP系列之三:用Java动态代理实现AOP [zz]
- 迈出AOP第一步--使用Java 动态代理实现AOP[zz]
- 使用JAVA中的动态代理实现数据库连接池
- 使用JAVA中的动态代理实现数据库连接池
- Java动态代理实现
- 用Java动态代理实现AOP
- Java初学者如何迈出AOP第一步--使用Java 动态代理实现AOP
- 用Java动态代理实现AOP
- Java初学者如何迈出AOP第一步--使用Java 动态代理实现AOP(转)
- 使用java 动态代理去掉代码中的bad smell。
- 使用JAVA中的动态代理实现数据库连接池
- AOP初学者第一步:用Java动态代理实现AOP
- 动态代理(Dynamic Proxy)Java Servlet