Spring Aspect 获取请求参数

2019-05-13 07:20:26来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

切片(Aspect)也就是Spring AOP

实现Aspect的主要步骤:

1、在哪里切入

  。在哪个方法起作用

  。什么时候起作用

2、起作用的时候执行什么处理逻辑

下面是代码实现

/**
 * 切片Aspect @Around的使用
 * 1、添加 @Aspect 和@Component注解 
 * 2、方法是用@Around注解和传入ProceedingJoinPoint对象
 * 虽然切片可以拿到是调用方法时候传过来的参数和值
 * 但是....却拿不了原始的请求和响应对象了
 *
 *
 */
@Aspect
@Component
public class DemoAspect {
    /**
     * 切入点(主要是注解)
     *
     * 1. 哪些方法上起作用
     *
     * 2.在什么时候起作用
     *
     * 相关注解有4个
     * 1.@Before 调用方法前
     * 2.@After  调用方法后
     * 3.@Afterth 方法抛出异常的时候
     * 4.@Around 包括了before、after、afterth 所以我们一般使用around
     *
     *
     * @Around 有专门的表达式 见官方文档 https://docs.spring.io/spring/docs/5.2.0.BUILD-SNAPSHOT/spring-framework-reference/core.html#aop-ataspectj
     * 有关切入点的语法和使用
     *
     *  当前例子是在com.xiluo.web.controller.DemoController里面的任何方法
     *  注意的是要传入ProceedingJoinPoint对象,这个对象记录了你当前拦截到的方法的信息
     */
    @Around("execution(* com.xiluo.web.controller.DemoController.*(..))")
    public Object handelControllerMethod(ProceedingJoinPoint point) throws Throwable {
        System.out.println("aspect start ");
      
        //获取参数
        Object[] args = point.getArgs();

        for (Object arg : args) {
            System.out.println("arg ==>" + arg);
        }

        //去调用被拦截的方法
        Object proceed = point.proceed();

        return proceed;
    }

}

 @Around注解

详细使用见官方文档:https://docs.spring.io/spring/docs/5.2.0.BUILD-SNAPSHOT/spring-framework-reference/core.html#aop-ataspectj  

 

 


原文链接:https://www.cnblogs.com/xiluonanfeng/p/10855886.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:使用js获取复选框的值,并把数组传回后台处理,过程使用的是Ajax

下一篇:Spring Cloud--Feign服务调用组件的使用实例