SpringBoot提供了强大AOP支持,我们前面讲解过AOP面向切面,所以这里具体AOP原理就补具体介绍;
AOP切面主要是切方法,我们一般搞一些日志分析和事务操作,要用到切面,类似拦截器;
@Aspect注解是切面注解类
@Pointcut切点定义
execution表达式
@Before是方法执行前调用
@After是方法执行后调用 -- 无论目标方法是否正常,都会运行,类似于java中的finally{}代码块
@AfterReturning方法执行返回值调用
@Around 环绕通知
Service层本身就可以切入事务,所以我们这类搞个常用的 切controller层方法
每个执行controller层的方法 都记录下请求Url,访问者IP 执行类方法参数等信息;
定义一个切面类:RequestAspect
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|