美文网首页SSM
探秘AOP实现原理

探秘AOP实现原理

作者: 95a6af369245 | 来源:发表于2019-03-26 16:39 被阅读449次

  可以这么说,AOP是基于动态代理实现的。

  那么,这个过程是怎样的?

  首先,我们有这样的一个Service类,它是被作为切面的一个类:

  public class Service implements User {

  public void addUser(){

  System.err.println(模拟增加用户);

  }

  }

  它实现了User接口,因为我们要使用JDK动态代理来实现这个过程,所以必须要实现这样一个接口。

  然后,我们生成一个代理对象:

  var service=(User)Proxy.newProxyInstance(Service.class.getClassLoader(),new Class[]{User.class}, new Handler(new Service()));

  这里需要实现一个handler:

  public class Handler implements InvocationHandler {private User target;public Handler(User target) {this.target=target;}@Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {System.err.println(模拟日志记录);return method.invoke(target,args);}}

  这个handler的作用是负责方法调用前的逻辑处理,

  我们运行一下:

  service.addUser();

  可以看到会在addUser方法调用前执行日志记录,那么我们在Service类中增加一个方法:

  public void delUser(){System.err.println(模拟删除用户);}

  也可以看到日志记录是正常工作的,那么我们梳理一下AOP的实现过程:使用动态代理生成一个目标对象的代理对象,然后这个代理对象在调用目标对象之前总会执行特定的方法调用前逻辑。

相关文章

  • 探秘AOP实现原理

    可以这么说,AOP是基于动态代理实现的。 那么,这个过程是怎样的? 首先,我们有这样的一个Service类,它是被...

  • [java][SpringAOP]

    为什么会有AOP 实现AOP原理 AOP通知类型 AOP在Spring中配置

  • Spring(一)

    First And MOST Important Spring AOP的实现原理和场景? 什么是AOP?AOP--...

  • 2018-09-16

    AOP的XML配置: AOP的先关术语: Spring底层的AOP实现原理 动态代理: JDK动态代理:只能对实现...

  • Spring AOP

    探秘Spring AOP 使用AOP的好处 AOP(Aspect-Orientid Programming)面向切...

  • 基于注解的SpringAOP切面编程实例

    1,AOP简介 面相切面编程(AOP),可以实现例如日志打印、身份认证,权限管理,安全监测。AOP的实现原理是基于...

  • Spring入门(二)之AOP实现原理

    Spring入门之AOP实现原理 一、什么是AOP? Aspect Oriented Programming(AO...

  • Spring AOP 实现原理

    Spring AOP 实现原理 静态代理 众所周知 Spring 的 AOP 是基于动态代理实现的,谈到动态代理就...

  • Spring4.x学习笔记(二)

    1.AOP的底层实现原理:image.pngimage.png 2.AOP操作术语:image.png 3.AOP...

  • Spring 学习--AOP

    参考文献:深入浅析Spring 的aop实现原理Spring AOP 深入剖析AOP: 面向切面编程oop是从上往...

网友评论

    本文标题:探秘AOP实现原理

    本文链接:https://www.haomeiwen.com/subject/ekknvqtx.html