java动态代理
来源:互联网 发布:挂号网软件 编辑:程序博客网 时间:2024/06/01 07:44
最近看到一篇博客讲了java动态代理。以前没接触过这个概念,于是小小的研究了下。源码部分下次研究哈。
java代理分两种
静态代理:由程序员创建或特定工具自动生成源代码,再对其编译。
动态代理:在程序运行时,运用反射机制动态创建而成。
这里讲动态代理
demo
一、创建接口类 AnimalDao
public interface AnimalDao {
public void call();
}
二、创建接口实现类 AnimalDaoImpl
public class AnimalDaoImpl implements AnimalDao{
@Override
public void call() {
System.out.println("主人来了");
}
}
三、创建使用类 AnimalHandler
AnimalHandler 实现 InvocationHandler接口
public class AnimalHandler implements InvocationHandler {
private Object obj;
public AnimalHandler(Object obj){
this.obj=obj;
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
System.out.println("主人推开门之前");
Object result = method.invoke(obj, args);
System.out.println("主人推开门之后");
return result;
}
}
四、测试类
public class AnimalTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
AnimalDao pDao = new AnimalDaoImpl();
AnimalHandler handler = new AnimalHandler(pDao);
AnimalDao proxy = (AnimalDao)Proxy.newProxyInstance(pDao.getClass().getClassLoader(), pDao.getClass().getInterfaces(), handler);
proxy.call();
}
}
五、运行输出
- Java 代理,动态代理
- [Java] Java 动态代理
- java代理及动态代理
- java代理模式--动态代理
- Java静态代理、动态代理
- Java 代理之 动态代理
- Java 代理与动态代理
- java静态代理,动态代理
- 代理模式&java动态代理
- Java代理与动态代理
- Java静态代理动态代理
- JAVA代理模式--动态代理
- java 代理和动态代理
- JAVA动态代理 代理模式
- Java动态代理--jdk代理
- Java动态代理--cglib代理
- Java 代理与动态代理
- java代理模式-动态代理
- java实现二叉树的构建以及3种遍历方法
- 跟我学NodeJS(一)
- 红黑树核心原理
- zoj 3732 Graph Reconstruction 构造
- Sybase Describe对应sql
- java动态代理
- Java操作Json数组
- Opentsdb 2.3 Writing data(二)
- shell中各种括号的作用()、(())、[]、[[]]、{}
- D
- 实验楼Linux基础入门(新版)- 历史命令
- http://www.cnblogs.com/lambertwe/p/5372590.html
- vue.js 列表数据加载更多
- 刷题三