springboot 切面AOP

切面AOP的实现

1、包引入

在默认的包中没有,需要单独集成

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-aop</artifactId>
   <version>3.3.2</version><!-- 版本根据自己的springboot选择,这里使用的版本为3.3.2-->
</dependency>

springboot默认有的starter,对应的版本在spring-boot-dependencies-3.3.2.pom中定义默认依赖版本
在这里插入图片描述

2、切面定义流程

2.1 切面定义流程

1、在类上使用@Aspect 声明该类为一个切面类,同时注意使用@Component将切面注入到容器中
2、在切面类方法使用@Pointcut注解声明一个切点方法,该方法为一个空的方法体,该方法不执行任何具体业务逻辑,主要用于标记或作为切入点表达式的依据。
切点表达式常用为两种 execution() 和 @annotation,

execution(modifier? ret-type declaring-type?name-pattern(param-pattern) throws-pattern?)

所有表达式方法

  • arg () 限制连接点的指定参数为指定类型的执行方法
  • @args () 限制连接点匹配参数由指定注解标注的执行方法
  • execution () 用于匹配连接点的执行方法
  • this () 限制连接点匹配 AOP 代理的 Bean 引用为指定类型的类
  • target () 限制连接点匹配特定的执行对象,这些对象对应的类要具备指定类型注解
  • within() 限制连接点匹配指定类型
  • @within() 限制连接点匹配指定注释所标注的类型
  • @annotation 限制匹配带有指定注释的连接点

3、在切面类中通过注解声明切面的通知方法(也就是不同执行时机的回调方法) Spring 切面可应用的 5 种通知类型:

  • @Before——在方法调用之前调用通知
  • @After——在方法完成之后调用通知,无论方法执行成功与否
  • @After-returning——在方法执行成功之后调用通知
  • @After-throwing——在方法抛出异常后进行通知
  • @Around——通知包裹了被通知的方法,在被通知的方法调用之前和调用之后执行自定义的行为

在定义通知方法的时候,一般可以使用 JoinPoint 作为参数,环绕通知使用 ProceedingJoinPoint。

完整代码

切面类
package org.javatrip.springbootaop;

import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值