手机
当前位置:查字典教程网 >编程开发 >Java >java实现动态代理示例分享
java实现动态代理示例分享
摘要:复制代码代码如下:importjava.lang.reflect.InvocationHandler;importjava.lang.ref...

复制代码 代码如下:

import java.lang.reflect.InvocationHandler;

import java.lang.reflect.Method;

import java.lang.reflect.Proxy;

public class LogHandler implements InvocationHandler {

private Object delegate;

public Object bind(Object delegate) {

this.delegate = delegate;

return Proxy.newProxyInstance(delegate.getClass().getClassLoader(),

delegate.getClass().getInterfaces(), this);

}

@Override

public Object invoke(Object proxy, Method method, Object[] args)

throws Throwable {

Object result = null;

try {

System.out.println("方法开始:" + method);

result = method.invoke(delegate, args);

System.out.println("方法结束:" + method);

} catch (Exception e) {

e.printStackTrace();

}

return result;

}

}

复制代码 代码如下:

public interface Animal {

public void hello();

}

动态代理作为代理模式的一种扩展形式,广泛应用于框架(尤其是基于AOP的框架)的设计与开发,本文将通过实例来讲解Java动态代理的实现过程。

复制代码 代码如下:

public class Monkey implements Animal {

@Override

public void hello() {

// TODO Auto-generated method stub

System.out.println("hello");

}

}

复制代码 代码如下:

public class Main {

public static void main(String[] args) {

LogHandler logHandler = new LogHandler();

Animal animal = (Animal) logHandler.bind(new Monkey());

animal.hello();

}

}

java实现动态代理示例分享1

【java实现动态代理示例分享】相关文章:

java 实现文件复制和格式更改的实例

java实现遗传算法实例分享(打印城市信息)

java集合求和最大值最小值示例分享

JAVA实现多线程的两种方法实例分享

字符串desede 3des加密示例分享

java日期工具类实例分享

java 实现约瑟夫环的实例代码

java使用数组和链表实现队列示例

java获取properties属性文件示例

java操作mongodb实现CURD功能实例

精品推荐
分类导航