前言
在上篇我们介绍了AOP
切边的增强注解@DeclareParents
,可以在对原有方法进行切面处理之前做一些准备阶段的处理。大家有兴趣的话可参考
SpringBoot(30) — 切面引入增强@DeclareParents
之前几篇文章讲的都是一个切面对于方法上的处理。但有时候,我们监听一个方法的时候,要多方面,不同角度的做处理。特别是打log的时候,需要在某些条件下显示这方面信息的log,在那种条件下,我只想让该方法显示那一方面的log信息。这时,我们就可以对该方法进行对维度切面,即多切面编程
。
今天涉及到的知识有:
- 切面库引入依赖
- 准备切入点方法
- 多切面编程
- 测试
先来波测试结果:
======我是测试啊=====
=====before...1==
=====before...2==
=====before...3==
======我是要打印的信息啊: 大家好
=====after...3==
=====after...2==
=====after...1==
一. 切面库引入依赖
使用SpringBoot
的AOP
切面,我们需要在pom.xml
中添加AOP
相关依赖:
<!-- Aop切面依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
<version>2.2.6.RELEASE</version>
</dependency>
大家也可参看SpringBoot(28) — AOP切面编程
二. 准备切入点方法
先准备一个需要被切面监听的方法接口类Iprinter
:
public interface Iprinter {
void printInfo(String message,int code);
}
然后Iprinter
的实现类Printer
:
@Component("Printer")
public class Printer implements Iprinter {
@Override
public void printInfo(String message, int code) {
LogUtil.println("======我是要打印的信息啊: " + message);
}
}
接下来,我们将为Printer
类的printInfo(String message, int code)
建立不同切面。
三. 多切面编程
我们知道,SpringBoot
中AOP
的作用域是加载到IoC
容器中的Bean
的方法上。自定义切面需要用到注解@Aspect
。作为一个切面也是要加载到IoC
容器中的。但作为切面,有一个特殊性,就是有了注解@Aspect
,不需要另外添加@Component
作为加载到容器的标志了。
ok,话不多说,先来写三个自定义切面CustomAspect1
,CustomAspect2
和CustomAspect3
。
先看下CustomAspect1
代码:
网友评论