Spring中的AOP

news/2024/10/18 9:18:45/

Spring中的AOP

文章目录

  • Spring中的AOP
    • AOP概述
      • 相关术语
      • 总结
      • 作用

AOP概述

AOP(Aspect Programming) 是一种设计思想,是面向切面编程思想

跟OOP(面向对象编程)有什么关系呢?

AOP面向切面编程然后是OOP(面向对象编程)的补充和完善。

OOP是纵向继承机制

AOP是横向抽取机制

可以把分核心业务代码抽取出来

为什么叫切面编程呢?

那是我们把一些非核心业务代码抽取出来之后,我们要把它交个一个切面类来进行管理,不是把它抽取出来的,我们还有把它套到我们当前真正实现功能的位置。

AOP是干嘛的?

抽:我们要把非核心代码,封装到当前的切面类进行管理

套:把我们当前抽取出来的代码,套用到我们当前抽取出来的位置

我们就可以达到一个不修改源代码情况下给程序动态统一添加额外的功能

相关术语

①横切关注点

从每个方法中抽取出来同一类非核心业务,在同一个项目中,我们可以使用多个横切关注点对相关对方法进行多个不同的方面增强(就是从核心代码中抽取出来的非核心业务代码)

②通知

我们要把横切关注点收集到一个类中,或者说我们把横切关注点封装到一个类中,这个类就叫切面,而这个切面里面所封装的每一个横切关注点他都是一个通知(你的非核心业务代码它在我们的目标对象中叫横切关注点,你把它抽出来之后放在一个切面类来进行封装,那我的横切关注点在切面中他就表示为一个通知方法,)

横切关注点:横切关注点是对于我们的目标对象的非核心业务代码来说的

通知:通知是针对于,我要把横切关注点封装在我们的切面中,而在这个切面中每一个横切关注点他都表示为一个通知方法

切面:封装横切关注点的类叫切面(也可以说封装通知方法的类叫切面)

目标对象:指的是当前的目标对象,我们需要进行功能增强的对象,也就是我们要抽取非核心代码的对象

代理:就是为当前目标对象所创建出来的代理对象(在AOP中代理对象不需要我们自己创建,以为它封装的就是代理模式)

连接点:就是抽取横切关注点的位置(就是说你的横切关注点在哪抽出来的)

切入点:定位连接点的方式(连接点是一个纯概念的问题,把非核心代码抽出来,我还得把它套到当前抽取出来的为位置(连接点),我们就可以通过切入点定位我们的连接点)

总结

目标类肯定是有的,代理类它要做的事情,从目标对象中把非核心业务代码,也就是横切关注点抽取出来,放在一个类中,这个叫切面。每一个横切关注点都是一个方法,这个方法叫通知。我们要在不改变源代码的基础上来做功能增强,我们不光要抽取出来,还得套到目标对象上,所以我们在哪抽的,就要套在哪里,这个位置叫连接点。连接点只是一个概念,通过切入点定位连接点。

作用

  • 简化代码:把方法中固定位置的重复代码抽取出来,让被抽取的方法更专注于自己的核心功能

  • 代码增强:在不改变源代码的基础上,然后进行把这个切面套到我们的目标对象的方法的执行过程中


http://www.ppmy.cn/news/26569.html

相关文章

计算机网络笔记(五)—— 网络层

网络层概述 网络层的主要任务是实现网络互连,进而实现数据包在各网络之间的传输。 需要解决的问题: 网络层提供的两种服务 1. 面向连接的虚电路(逻辑上的连接,而不是物理连接)服务 2. 无连接的数据报服务&#xff…

第11篇:Java开发工具使用和代码规范配置

目录 1、IntelliJ IDEA 简介 2. IntelliJ IDEA 下载 3. IntelliJ IDEA 安装和使用 3.1 安装到Windows下 3.2 快速编写 Hello World 程序

模拟实现string

目录 1、基本成员变量 2、默认成员函数 构造函数 析构函数 拷贝构造函数(深拷贝) 赋值运算符重载 3、容量与大小相关的函数 size capacity 4、字符串访问相关函数 operator [ ]重载 迭代器 5、增加的相关函数 reserve扩容 resize push_back追加字符 appe…

使用Vue3实现一个可复制的表格

前言 表格是前端非常常用的一个控件,但是每次都使用v-for指令手动绘制tr/th/td这些元素是非常麻烦的。同时,基础的 table 样式通常也是不满足需求的,因此一个好的表格封装就显得比较重要了。 最基础的表格封装 最基础基础的表格封装所要做…

基于Spring Boot的零食商店

文章目录项目介绍主要功能截图:登录后台首页个人信息管理用户管理前台首页购物车部分代码展示设计总结项目获取方式🍅 作者主页:Java韩立 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关…

Go语言基础(十五):垃圾回收机制(三色标记)

文章目录一、标记清除(三色标记)大致原理1、标记细节2、root对象二、垃圾回收触发机制垃圾回收(Garbage Collection),是一种自动管理内存的机制。传统编程语言(如C/C)需要开发者对无用内存资源进…

狂飙Linux平台,软件部署大全

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…

空间误差分析:统一的应用导向处理(Matlab代码实现)

👨‍🎓个人主页:研学社的博客💥💥💞💞欢迎来到本博客❤️❤️💥💥🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密…