• Java中Spring AOP讲解


    Java中Spring AOP讲解

    1、什么是AOP?

    AOP(面向切面编程)通过预编译的方式 和 运行期动态代理的方式来实现程序功能统一维护的一种方式,是OOP(面向对象编程)的延续。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各个部分之间的耦合度减低,提高程序的可重用性,同时提高了开发效率。

    AOP利用的是一种横切技术,解剖开封装的对象内部,并将哪些影响多个类的公共行为封装到一个可重用模块,这就是所谓的Aspect方面/切面。所谓的切面,简单点所说,就是将哪些与业务无关,却为业务模块所共同调用的行为(方法)提取封装,减少系统的重复代码,以达到逻辑处理过程中各部分之间低耦合的隔离效果

    AOP采取横向抽取机制,取代了传统的纵向继承体系重复性代码

    在这里插入图片描述

    2、AOP能做什么?

    • 权限认证
    • 日志记录
    • 性能统计
    • 事务处理
    • 异常处理
    • . . .

    3、AOP相关术语

    • Joinpoint(连接点):连接点是指可以被拦截到的点,在spring中,这些点指的是方法,因为spring只支持方法类型的连接点,不提供属性的连接点,也就是说spring aop只能对方法层面进行增强
    • Pointcut(切入点):切入点是指我们要对哪些Joinpoint进行拦截的定义,即真正被拦截的点
    • Advice(增强 / 通知):通知是指拦截到Joinpoint之后要做的事情,如* 对 save方法进行权限认证,权限认证的方法称为通知。通知分为:前置通知、后置通知、异常通知、环绕通知、最终通知
    • Target(目标对象):包含Joinpoint连接点的对象,即被通知(增强)或被代理的对象(类)
    • Weaving(织入):织入是指把增强应用到Target目标对象来创建新的代理对象的过程,如* 将权限认证应用到UserSeviceImpl目标对象的save方法的这个过程
    • Proxy(代理):目标类被织入增强后,会产生一个结果代理类。在Spring中,AOP代理可以是JDK动态代理 或 CGLib代理,并且Spring可以智能识别什么时候使用JDK动态代理,什么时候使用CGLib代理
    • Aspect(切面):切面是指切入点 和 通知的组合
      在这里插入图片描述
  • 相关阅读:
    Git--Part3--远程操作 & 配置 & 标签管理
    常见的锁策略你了解多少?
    Vue echarts 饼图 引导线加小圆点,文字分行展示
    Spring注解家族介绍: @RequestMapping
    2022 Java生态系统报告:Java 11超Java 8、Oracle在缩水、Amazon在崛起
    使用nvim来代替VSCode,神操作
    ABP:关于JWT代替session
    网络协议学习地图分享
    kafka 开启认证授权
    六要素微气象仪
  • 原文地址:https://blog.csdn.net/qq_45830276/article/details/126696991