动态代理代码实现实例
来源:互联网 发布:执业药师网络报名机构 编辑:程序博客网 时间:2024/06/16 08:41
实现InvokeHandle接口的类:
package com.zjlolife.dymanic_proxy;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;public class InvoHandle implements InvocationHandler {private Object target; public InvoHandle(Object target) {this.target = target;}@Overridepublic Object invoke(Object proxy, Method method, Object[] args)throws Throwable {System.out.println("inhandle中的target"+target);Object ret = null;System.out.println("正在执行的方法"+method.getName()+"========");if(args!=null) {for(Object arg:args) {System.out.println("传入的参数"+arg);}}else {System.out.println("没有传入参数");}ret = method.invoke(target, args);System.out.println(method.getName()+"方法执行完成=========");return ret;}}
生成动态代理对象的类:
package com.zjlolife.dymanic_proxy;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Proxy;public class ProxyFactory {private InvocationHandler invohandle;private Object target; public ProxyFactory(Object target) { this.target = target; invohandle = new InvoHandle(this.target); } public Object getProxy(){ return Proxy.newProxyInstance(target.getClass().getClassLoader(), target.getClass().getInterfaces(), invohandle); } }
一个接口类:
package com.zjlolife.dymanic_proxy;public interface Animal {public void walk();public void sleep();public String say();}
实现该接口的类:
package com.zjlolife.dymanic_proxy;public class Bird implements Animal {@Overridepublic void walk() {// TODO Auto-generated method stub}@Overridepublic void sleep() {// TODO Auto-generated method stub}@Overridepublic String say() {// TODO Auto-generated method stubreturn "bird叫了";}}
测试类:
package com.zjlolife.dymanic_proxy;public class Client {public static void main(String [] args) {Animal bird = new Bird();Animal animal = (Animal)new ProxyFactory(bird).getProxy();animal.say();}}
- 动态代理代码实现实例
- CGLIB动态代理代码实例
- jdk动态代理实现代码
- 动态代理类实现原理及实例
- java使用动态代理来实现AOP(日志记录)的实例代码
- java实现动态代理代码实例(死循环溢出的问题的解决)
- 静态与动态代理以及动态代理代码实现
- Java静态代理和动态代理的简单代码实现。
- JDK动态代理实例
- java动态代理实例
- 动态代理简单实例
- java动态代理实例
- Cglib动态代理实例
- java动态代理实例
- 动态代理实例
- AOP动态代理实例
- JAVA动态代理实例
- 反射-动态代理(实例)
- 单链表的逆置
- 杂记--随时更新
- 【Hibernate】Hibernate的检索策略:lazy、fetch
- 黑马程序员_面试题之交通灯
- Struts2开发步骤
- 动态代理代码实现实例
- gethostbyname(),gethostbyaddr()的使用
- Android Project Butter分析
- 第三章代码及其结果
- php 分页
- 创业总结:创业公司怎样留人
- 十大【C语言】经典书籍,应该有你看过的吧
- java 环境变量设置
- 织梦DEDE的列表页