Java动态代理

概述:
动态代理其实就是Java.lang.reflect.Proxy类动态的生成一个class byte,该class会继承Proxy类,并且会实现所有你指定的接口(参数中传入的接口数组)。然后利用你指定的classloader将class byte加载进jvm,最后生成这样一个类的对象,并初始化该对象的一些值,初始化之后将对象返回给调用的客户端。
作用:
动态代理能够在你的核心业务方法前后做一些你想做的辅助工作,如log日志、安全机制等。

实例分析:
   
   
  1. Proxy.newProxyInstance(service.getClassLoader(), new Class<?>[] { service },
  2. new InvocationHandler() {
  3. private final Platform platform = Platform.get();
  4. @Override public Object invoke(Object proxy, Method method, Object... args)
  5. throws Throwable {
  6.            // 可以在这里写一些核心业务之前的方法
  7.            System.out.print("you can do something before you business");
  8.            Object result = method.invoke(this, args);
  9.            // 可以在这里写一些核心业务之前的方法
  10.            System.out.print("you can do something after you business");
  11.            return result;
  12. }
  13. });
invoke ( Object proxy , Method method , Object ... args )三个参数分别代表的意思是:
  • proxy:指代我们所代理的那个真实对象
  • method:指代我们所要调用真实对象的某个方法的Method对象
  • args:指代我们调用某个真实方法时接受的参数
运行先后顺序如下:
You can do something here before process your business
核心业务method...
You can do something here after process your business
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值