Spring AOP SpringBoot集成

2023-02-12,,,

上一篇文章《Spring AOP 面向切面编程入门》对AOP作了简要的介绍,包含一些专业术语的解释。

本文基于SpringBoot编写了一个简单的Spring AOPDemo。

maven依赖添加如下
<!--引入SpringBoot的Web模块-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency> <!--引入AOP依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>

注意:在完成了引入AOP依赖包后,不需要去做其他配置。AOP的默认配置属性中,spring.aop.auto属性默认是开启的,也就是说只要引入了AOP依赖后,默认已经增加了@EnableAspectJAutoProxy,不需要在程序主类中增加@EnableAspectJAutoProxy来启用。
 
 
web请求入口:对应系统纵向的核心业务模块。

package com.example.demo.aop;

import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; /**
* @desc: 核心业务模块
* @author: CSH
**/
@RestController
@RequestMapping("/aopController")
public class AopController { @RequestMapping(value = "/Curry")
public void Curry(){
System.out.println("库里上场打球了!!");
} @RequestMapping(value = "/Harden")
public void Harden(){
System.out.println("哈登上场打球了!!");
} @RequestMapping(value = "/Antetokounmpo")
public void Antetokounmpo(){
System.out.println("字母哥上场打球了!!");
} @RequestMapping(value = "/Jokic")
public void Jokic(){
System.out.println("约基奇上场打球了!!");
} @RequestMapping(value = "/Durant/{point}")
public void Durant(@PathVariable("point") int point){
System.out.println("杜兰特上场打球了!!");
}
}

 
 
定义切面类:在类上添加@Aspect 和@Component 注解即可将一个类定义为切面类。
@Aspect 注解 使之成为切面类
@Component 注解 把切面类加入到IOC容器中

package com.example.demo.aop;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.*;
import org.springframework.stereotype.Component; /**
* @desc: 经纪人切面
* @author: CSH
**/
@Aspect
@Component
public class BrokerAspect { /**
* 定义切入点,切入点为com.example.demo.aop.AopController中的所有函数
*通过@Pointcut注解声明频繁使用的切点表达式
*/
@Pointcut("execution(public * com.example.demo.aop.AopController.*(..)))")
public void BrokerAspect(){ } /**
* @description 在连接点执行之前执行的通知
*/
@Before("BrokerAspect()")
public void doBeforeGame(){
System.out.println("经纪人正在处理球星赛前事务!");
} /**
* @description 在连接点执行之后执行的通知(返回通知和异常通知的异常)
*/
@After("BrokerAspect()")
public void doAfterGame(){
System.out.println("经纪人为球星表现疯狂鼓掌!");
} /**
* @description 在连接点执行之后执行的通知(返回通知)
*/
@AfterReturning("BrokerAspect()")
public void doAfterReturningGame(){
System.out.println("返回通知:经纪人为球星表现疯狂鼓掌!");
} /**
* @description 在连接点执行之后执行的通知(异常通知)
*/
@AfterThrowing("BrokerAspect()")
public void doAfterThrowingGame(){
System.out.println("异常通知:球迷要求退票!");
}
}

 
调用服务http://localhost:8080/aopController/Harden,输出结果:
aaarticlea/png;base64,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" alt="" />
 
切点表达式用于描述切点的位置信息,在此简单描述文中切点表达式的含义。
推荐一个切点表达式总结的博客https://www.cnblogs.com/zhangxufeng/p/9160869.html
aaarticlea/png;base64,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" alt="" width="660" />
 
这里单独讲解一下功能强大的环绕通知,环绕通知可以将你所编写的逻辑将被通知的目标方法完全包装起来。我们可以使用一个环绕通知来代替之前多个不同的前置通知和后置通知。如下所示,前置通知和后置通知位于同一个方法中,不像之前那样分散在不同的通知方法里面。

/**
* @description 使用环绕通知
*/
@Around("BrokerAspect()")
public void doAroundGame(ProceedingJoinPoint pjp) throws Throwable {
try{
System.out.println("经纪人正在处理球星赛前事务!");
pjp.proceed();
System.out.println("返回通知:经纪人为球星表现疯狂鼓掌!");
}
catch(Throwable e){
System.out.println("异常通知:球迷要求退票!");
}
}

环绕通知接受ProceedingJoinPoint作为参数,它来调用被通知的方法。通知方法中可以做任何的事情,当要将控制权交给被通知的方法时,需要调用ProceedingJoinPoint的proceed()方法。当你不调用proceed()方法时,将会阻塞被通知方法的访问。
 
 
 
当通知方法需要传入参数我们又该怎样处理呢?
和之前创建的切面一样,这里的不同点在于切点还声明了要提供给通知方法的参数。
切点表达式args(point)表明传递给GameDataAspect()方法中的int类型参数也会传递到通知中去,参数名point和缺点方法签名中的参数相匹配

package com.example.demo.aop;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component; /**
* @desc:技术统计
* @author: CSH
**/
@Aspect
@Component
public class GameDataAspect {
/**
* 定义切入点,切入点为com.example.demo.aop.AopController中的所有函数
*通过@Pointcut注解声明频繁使用的切点表达式
*/
@Pointcut("execution(public * com.example.demo.aop.AopController.Durant(int)) && args(point))")
public void GameDataAspect(int point){ } /**
* @description 使用环绕通知
*/
@Around("GameDataAspect(point)")
public void doAroundGameData(ProceedingJoinPoint pjp,int point) throws Throwable {
try{
System.out.println("球星上场前热身!");
pjp.proceed();
System.out.println("球星本场得到" + point + "分" );
}
catch(Throwable e){
System.out.println("异常通知:球迷要求退票!");
}
}
}

调用服务http://localhost:8080/aopController/Durant/60,输出结果:
aaarticlea/png;base64,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" alt="" width="546" />
 
本文代码Github链接https://github.com/LemonFive/SpringBootAopDemo

Spring AOP SpringBoot集成的相关教程结束。

《Spring AOP SpringBoot集成.doc》

下载本文的Word格式文档,以方便收藏与打印。