一个简单 JDK 动态代理的实例
动态代理的步骤:
- 创建一个实现了 InvocationHandler 接口的类,必须重写接口里的 invoke()方法。
- 创建被代理的类和接口
- 通过 Proxy 的静态方法 newProxyInsatance(ClassLoader loader,Class[] interfaces,InvocationHandler,handler) 来创建一个代理
- 通过代理来调用方法
简单的动态代理实例
1 package com.sean.zzzjvm; 2 3 import java.lang.reflect.InvocationHandler; 4 import java.lang.reflect.Method; 5 import java.lang.reflect.Proxy; 6 7 /** * * @Author Sean * @Date 2017/8/20 21:43. * @Version */ 8 public class DynamicProxyTest { 9 10 // 定义一个接口 11 interface IHello{ 12 void sayHello(); 13 } 14 15 // 实现该接口的类 16 static class Hello implements IHello{ 17 18 @Override 19 public void sayHello() { 20 System.out.println("hello world"); 21 } 22 } 23 24 // 创建一个动态代理类,实现 InvocationHandler 接口 25 static class DynamicProxy implements InvocationHandler{ 26 Object originalObj; 27 28 // 创建一个代理的方法,在 new DynamicProxy().bind(new Hello()); 执行 29 Object bind (Object originalObj){ 30 this.originalObj = originalObj; 31 // 返回一个代理对象 32 return Proxy.newProxyInstance(originalObj.getClass().getClassLoader(), 33 originalObj.getClass().getInterfaces(),this); 34 } 35 36 // 默认重写的方法,在 hello.sayHello() 执行 37 @Override 38 public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { 39 System.out.println("welcome"); 40 return method.invoke(originalObj,args); 41 } 42 } 43 44 public static void main(String[] args){ 45 // IHello hello = new Hello(); 46 // 调用动态代理的方法 47 IHello hello = (IHello) new DynamicProxy().bind(new Hello()); 48 hello.sayHello(); 49 } 50 51 }
为人:谦逊、激情、博学、审问、慎思、明辨、 笃行
学问:纸上得来终觉浅,绝知此事要躬行
为事:工欲善其事,必先利其器。
态度:道阻且长,行则将至;行而不辍,未来可期
.....................................................................
------- 桃之夭夭,灼灼其华。之子于归,宜其室家。 ---------------
------- 桃之夭夭,有蕡其实。之子于归,宜其家室。 ---------------
------- 桃之夭夭,其叶蓁蓁。之子于归,宜其家人。 ---------------
=====================================================================
* 博客文章部分截图及内容来自于学习的书本及相应培训课程以及网络其他博客,仅做学习讨论之用,不做商业用途。
* 如有侵权,马上联系我,我立马删除对应链接。 * @author Alan -liu * @Email no008@foxmail.com
转载请标注出处! ✧*꧁一品堂.技术学习笔记꧂*✧. ---> https://www.cnblogs.com/ios9/
学问:纸上得来终觉浅,绝知此事要躬行
为事:工欲善其事,必先利其器。
态度:道阻且长,行则将至;行而不辍,未来可期
.....................................................................
------- 桃之夭夭,灼灼其华。之子于归,宜其室家。 ---------------
------- 桃之夭夭,有蕡其实。之子于归,宜其家室。 ---------------
------- 桃之夭夭,其叶蓁蓁。之子于归,宜其家人。 ---------------
=====================================================================
* 博客文章部分截图及内容来自于学习的书本及相应培训课程以及网络其他博客,仅做学习讨论之用,不做商业用途。
* 如有侵权,马上联系我,我立马删除对应链接。 * @author Alan -liu * @Email no008@foxmail.com
转载请标注出处! ✧*꧁一品堂.技术学习笔记꧂*✧. ---> https://www.cnblogs.com/ios9/