当前位置: 首页 > article >正文

【SpringAOP】AOP面向切面编程

目录

一、什么是AOP

二、为什么有AOP

三、AOP相关概念

四、SpringAOP代码案例

1、添加SpringAOP依赖

2、定义切面

3、定义切点

4、实现通知

一、什么是AOP

AOP:AOP—Aspect Oriented Programming(面向切面编程),是对OOP(面向对象编程)的补充与完善。AOP就类似是把登录校验这个一个业务逻辑功能抽取出来,然后动态把这个功能切入到需要的接口(或行为)中,从而减少系统对登录权限校验的重复代码,降低模块之间的耦合度。常用到AOP的就是登录权限校验、日志操作、统一异常格式返回、统一数据格式的返回。

二、为什么有AOP

AOP是一种思想,对OOP思想进行补充与完善,其次他与IoC类似具有解耦合的作用,SpringAOP是对AOP思想的实现

三、AOP相关概念

Aspect(切面)Aspect 声明类似于 Java 中的类声明,在 Aspect 中会包含着一些 Pointcut 以及相应的 Advice。 Joint point(连接点):表示在程序中明确定义的点,典型的包括方法调用,对类成员的访问以及异常处理程序块的执行等等,它自身还可以嵌套其它 joint point。 Pointcut(切点):表示一组 joint point,这些 joint point 或是通过逻辑关系组合起来,或是通过通配、正则表达式等方式集中起来,它定义了相应的Advice 将要发生的地方。 Advice(通知):Advice 定义了在 Pointcut 里面定义的程序点具体要做的操作,它通过 before、after 和 around 来区别是在每个 joint point 之前、之后还是代替执行的代码。

四、SpringAOP代码案例

1、添加SpringAOP依赖

<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-aop -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-aop</artifactId>
			<version>2.7.9</version>
		</dependency>

2、定义切面

通过Aspect注解定义切面 

3、定义切点

通过pointcut注解配置拦截规则即要在哪里插入通知

* com.example.demo.*.*(..)

* 返回类型,可以是string、void等 *表示任意类型
com.example.demo.* 要拦截的路径*代表着包底下的全部类
*(..)  方法名(参数列表) *表示任意方法  ..表示任意参数

4、实现通知

通过注解来实现是哪一类通知

注解说明
@After在拦截的目标方法执行后执行该通知
@Before在拦截的目标方法执行前执行该通知
@Around在拦截的目标方法执行前后执行该通知
@AfterReturning在拦截的目标方法返回返回值后执行该通知
@AfterThrowing在拦截的目标方法出现异常后执行该通知

 


http://www.kler.cn/a/3585.html

相关文章:

  • [Effective C++]条款48 模板元编程(TMP)
  • 精选100+套HTML可视化大屏模板源码素材
  • 查看电脑或笔记本CPU的核心数方法及CPU详细信息
  • 音频入门(一):音频基础知识与分类的基本流程
  • Flowable 审核功能封装
  • 可以自己部署的微博 Mastodon
  • 微信小程序面试题(day08)
  • OpenHarmony实战STM32MP157开发板 “控制” Hi3861开发板 -- 中篇
  • 【2023年第十一届泰迪杯数据挖掘挑战赛】B题:产品订单的数据分析与需求预测 建模及python代码详解 问题一
  • Java中的深拷贝和浅拷贝
  • 1.4、第三阶段 MySQL数据库
  • 记一次若依后台管理系统渗透
  • 010-Ansible数组
  • hastcat
  • 学习操作系统的必备教科书《操作系统:原理与实现》| 文末赠书4本
  • Java中的日期时间类
  • K8S + GitLab + Jenkins自动化发布项目实践(一)
  • C# 计算方差
  • 关于Docker逃逸
  • 【Spring Cloud Alibaba】7.Sentinel熔断器仪表盘监控
  • AI绘画(以后也叫AI视频)
  • https是如何保证安全的
  • 电脑长按电源键强行关机,对SSD有伤害吗?SSD 掉盘之殇
  • 网络安全 2023 年为什么如此吃香?事实原来是这样....
  • 大数据项目之数仓相关知识
  • PLG SaaS 案例:如何实践外链自动增长策略?