在返回给客户端前,通过 AOP 给返回的类做处理。
1 |
|
AOP 有如下5种通知类型,@Around, @Before, @After, @AfterReturning 和 @AfterThrowing。
- 如果在通知内都未调用
proceedingJoinPoint.proceed()
,那执行顺序为如下:
Around -> After -> AfterReturning (正常返回) | AfterThrowing (异常返回)
- 如果在通知内部调用了
proceedingJoinPoint.proceed()
,此句代码相当于是执行Before
(如果有的话) 和目标对象的方法
逻辑。
Pointcut注解
Pointcut 表达式除了使用 execution
以外,还可以使用 annotation
,比如:
定义切点
@Pointcut("@annotation(gy.finolo.anno.AopAnnotation)")
我们再创建一个注解
1 | ({ElementType.METHOD}) |
在方法上面只要是被 @AopAnnotation 注解了,那逻辑都会被切入。