Java中使用反射机制如何实现一个Aop代理

  介绍

今天就跟大家聊聊有关Java中使用反射机制如何实现一个Aop代理,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

利用反射生成JDK的动态代理,也就是Aop中的Aop代理,代替目标对象,从而在代码中织入增强。

<强>定义代理接口

由于JDKf动态代理只能为接口创建动态代理,故先定义接口,假定我们需要对数据的保存方法添加事务处理,我们有一个UserDao接口,里面有一个保存方法,代码如下:

公共接口UserDao {
  公共空间保存();
  }

<>强定义代理实现

下面具体来实现接口定义的保存方法,我们采用下面的代码来实现。

公共类UserTx {
  公共空间在(){
  System.out.println(“拯救.....“之前);
  }
  公共空间后(){
  System.out.println(“保存后…“);
  }
  }

<>强定义调用处理程序

之所以要定义处理程序是因为执行动态代理时,实际执行的是处理程序里面()的调用方法,这样的话,我们在调用()方法里面自定义方法的内容,从而就达到了代理和增强的逻辑和效果。

进口java.lang.reflect.Proxy;
  公开课ProxyTst {
  公共静态void main (String [] args) {//代理对象
  UserDao目标=new UserDaoImpl ();//调用处理程序
  UserDaoInvocationHandler处理程序=new UserDaoInvocationHandler ();
  handler.setProxyObj(目标);//代理
  UserDao目标=(UserDao) Proxy.newProxyInstance (
  .getClassLoader target.getClass () (),
  .getInterfaces target.getClass () (),
  处理程序);//执行代理对象
  targeted.save ();
  }
  }

执行上面的代码之后我们可以在控制台看见如下的输出,证明UserDao已经被成功代理,同时我们也为我们的程序成功的添加了事务功能。

之前保存.....
  我保存用户....
  保存后……

看完上述内容,你们对Java中使用反射机制如何实现一个Aop代理有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

Java中使用反射机制如何实现一个Aop代理