JDK代理,非常简单地实现了动态代理(首先是实现对应的InvocationHandler;然后,以接口来为被调用目标构建代理对象,代理对象简介运行调用目标,并提供额外逻辑插入)

缺点:它是只能以接口为中心的。优点:依赖JDK,更稳定可靠,跟着JDK升级,代码简单。

 package jesse.test;

 import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy; interface Hello{
void sayHello();
} class HelloImpl implements Hello{ @Override
public void sayHello() {
System.out.println("my hello");
} } class MyInvocationHandler implements InvocationHandler{
private Object target;
public MyInvocationHandler(Object target) {
super();
this.target = target;
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
System.out.println("proxy invoke sayhello");
Object result = method.invoke(target, args);
return result;
}
} public class MyJDKProxy {
public static void main(String[] args) {
HelloImpl hello = new HelloImpl();
MyInvocationHandler handler = new MyInvocationHandler(hello);
//构造代码实例
Hello proxyHello = (Hello)Proxy.newProxyInstance(HelloImpl.class.getClassLoader(), HelloImpl.class.getInterfaces(),handler);
//调用代理方法
proxyHello.sayHello();
} }

最新文章

  1. 基于 jQuery 实现垂直滑动的手风琴效果
  2. Pandas系列教程——写在前面
  3. JQ限制输入字数,并提示剩余字数
  4. Maven 打胖jar
  5. Android 软件盘 动态设置 layout
  6. jade初学
  7. JS浏览器类型推断方法
  8. pumping lemma for finite regular language?
  9. javascript: 常用操作
  10. N皇后问题——递归求解
  11. Java中的==、equals、hasCode方法
  12. 纳税服务系统【统计图Fusionchart】
  13. Django 学习笔记
  14. sublime text 3 package Install 安装失败解决方法
  15. ajax post 提交数据和文件
  16. vue 條件語句
  17. 多继承之MRO
  18. Mysql抓包工具 - MySQL Sniffer 使用小结 (含带general_log日志)
  19. velocity模板实战
  20. Valid Parentheses & Longest Valid Parentheses

热门文章

  1. swift c++ oc 混编
  2. 关于hrtimer_forward小段代码的分析【转】
  3. 【反演复习计划】【COGS2432】爱蜜莉雅的施法
  4. 准备开发开放API接口
  5. Mysql的碎片查看与处理
  6. kotlin 写的一个简单 sql 查询解析器
  7. 最近项目中用到的js
  8. EasyUI----DataGrid行明细增删改操作
  9. [jquery]判断checkbox是否选中
  10. css-demo