spring aop八大核心概念的通俗简洁理解,一看就明白

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • AOP简介
  • AOP入门
    • 核心概念
      • 1、连接点
      • 2、切入点
      • 3、通知
      • 4、切面
      • 5、目标对象
      • 6、织入
      • 7、代理
      • 8、 引入
  • 总结
    • 简单配置


AOP简介

在了解aop之前首先要引入oop的概念
oop也就是我们熟知的面向对象程序设计(Object Oriented Programming),oop关注的是将功能划分为模块,比如我们熟悉的三层架构——表现层、业务层、持久层,然后针对模块进行进一步的开发。
spring aop八大核心概念的通俗简洁理解,一看就明白_第1张图片
而aop更加侧重于“抽取”的思想。抽取一些高频重用的代码块等,有一种“切开”的意思
spring aop八大核心概念的通俗简洁理解,一看就明白_第2张图片
使用aop的优势很多——代码可重用性高,编码更简洁、代码维护更高效、业务扩展更便捷等
spring aop八大核心概念的通俗简洁理解,一看就明白_第3张图片

AOP入门

核心概念

spring aop八大核心概念的通俗简洁理解,一看就明白_第4张图片

1、连接点

AOP将所有的方法都视为连接点,不管是接口里面的抽象方法,还是实现类里面的重写方法,都是连接点

2、切入点

AOP将可能被抽取共性功能的方法称为切入点。切入点是连接点的子集

3、通知

AOP将抽取出来的共性功能称为通知。
通知类型:以通知在上下文中的具体位置作为划分。

4、切面

ASP将切入点和通知(也就是被抽取的方法,和抽取出来的共性功能)之间的关系称为切面,切面描述了两者之间的关系。比如说,通知在切入点的上下文关系如何,这样才能保证将通知拼接回切入点之后能让程序正常运行
spring aop八大核心概念的通俗简洁理解,一看就明白_第5张图片

5、目标对象

在把切入点的通知抽取完成之后剩下的部分(就像是残缺的方法),而一个方法必须要作为一个类的一部分参与整个项目,而这个类的调用需要一个实例化对象,这个对象就是所谓的目标对象

6、织入

目标对象单打独斗是绝对不能运行的,我们需要将之前从切入点抽取的通知按照切面规定的关系还原回去,这样才是具有完整运行能力的方法。这个还原回去的过程,AOP称为织入

7、代理

织入完成后,我们又重新获得了一个完整的方法;类似的,这个方法也要作为一个类的一部分参与项目的构建,而这个类是通过“5、目标对象”所在的类,变化过来的。这个变换的过程,称为代理。

8、 引入

通过代理我们得到了一个新的类,这个类具有目标对象所在类的一切属性、方法。同时,这个新的类,可以像打补丁一样,自己重新定义一些属性和方法(可以在不修改原有代码的基础上完成新增功能,这是非常重要的应用)

总结

spring aop八大核心概念的通俗简洁理解,一看就明白_第6张图片
在实际开发中,只需要我们编写切入点(从哪里抽取?抽取的对象是哪个方法?)、切面(抽取的代码的上下文关系如何?)、通知(抽取的共性功能是什么?)三大功能即可。
spring aop八大核心概念的通俗简洁理解,一看就明白_第7张图片

简单配置

在spring的核心配置文件中加上aop的相关实现。AOP最初只是一种编程规范,而spring对其作了实现

<bean id="myAdvice" class="com.ych.aop.AOPAdvice"/>


    <aop:config>

        <aop:pointcut id="pt" expression="execution(* *..*(..))"/>

        <aop:aspect ref="myAdvice">

            <aop:before method="fun" pointcut-ref="pt"/>
        aop:aspect>
    aop:config>

你可能感兴趣的:(spring学习,spring,java,后端,aop)