JDK动态代理
来源:互联网 发布:解剖软件 编辑:程序博客网 时间:2024/06/06 14:27
1.接口Hello
public interface Hello { void say(String name);}
2.Hello实现类
public class HelloImpl implements Hello{ @Override public void say(String name) { System.out.println("Hello"+name); }}
3.动态代理类
public class DynamicProxy implements InvocationHandler{ private Object target; public DynamicProxy(Object target) { this.target = target; } @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { before(); Object result = method.invoke(target, args); after(); return result; } @SuppressWarnings("unchecked") public <T> T getProxy(){ return (T) Proxy.newProxyInstance( target.getClass().getClassLoader(), target.getClass().getInterfaces(), this); } private void before() { System.out.println("before"); } private void after() { System.out.println("after"); }}
4.main
public class Main { public static void main(String[] args) { Hello hello = new HelloImpl(); hello = new DynamicProxy(hello).getProxy(); hello.say("ke"); }}
参考《架构探险 从零开始写Java Web框架》
阅读全文
0 0
- 代理模式,JDK动态代理
- Java动态代理--jdk代理
- 代理模式-JDK动态代理
- JDK中的动态代理
- JDK动态代理
- JDK动态代理
- JDK动态代理
- jdk动态代理(暂)
- JDK动态代理
- JDK动态代理实例
- jdk 动态代理
- JDK动态代理
- JDK动态代理说明
- jdk动态代理
- JDKDynamicProxy JDK动态代理
- JDK动态代理实现
- JDK 动态代理
- JDK动态代理
- Spark的一些操作
- 将txt文本中的图片路径的图片读到某文件夹下
- oracle删除DBF文件
- 重启ORACLE数据库
- linux创建软连接
- JDK动态代理
- Navicat For Mysq中常用的l快捷键
- C语言内存空间分布详解
- Head First javaScript_#6函数
- 排序
- UART、I2C以及SPI协议学习总结
- Linux 配置Tomcat
- Service的使用:断点下载
- jsp传中文参数Java后台获取乱码解决办法