美文网首页
springBoot之切片拦截请求(使用Aspect)

springBoot之切片拦截请求(使用Aspect)

作者: 寂静的春天1988 | 来源:发表于2019-06-28 17:47 被阅读0次

使用spring aop实现。

package com.ganlong.aspect;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;

@Component
@Aspect
public class TimeAspect {
    @Around("execution(* com.ganlong.controller.Hello.*(..))")
    public Object around(ProceedingJoinPoint point) {
        System.out.println("aspect start");
        Object[] args=point.getArgs();
        for (Object object : args) {
            System.out.println("arg="+object);
        }
        Object obj=null;
        try {
            obj=point.proceed();
            System.out.println(obj);
        } catch (Throwable e) {
            e.printStackTrace();
        }
        System.out.println("aspect end");
        return obj;
    }
    
}

在方法的什么时间段执行增强方法有5种类型
1)前置通知(Before):在目标方法被调用之前调用通知功能。

2)后置通知(After):在目标方法完成之后调用通知,不会关心方法的输出是什么。

3)返回通知(After-returning): 在目标方法成功执行之后调用通知。

4)异常通知(After-throwing):在目标方法抛出异常后调用通知。

5)环绕通知(Around):通知包裹了被通知的方法,在被通知的方法调用之前和之后执行自定义的行为。

image.png

参考链接https://blog.csdn.net/yhl_jxy/article/details/78815636

相关文章

网友评论

      本文标题:springBoot之切片拦截请求(使用Aspect)

      本文链接:https://www.haomeiwen.com/subject/abvecctx.html