• Spring Aspect 获取请求参数


    切片(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  

  • 相关阅读:
    初学者一些常用的SQL语句(一)
    java小知识
    ArrayList底层实现原理
    JVM原理
    一个简单的登陆注册页面(希望可以帮到您)
    数据结构
    C++/C
    C的函数指针与指针函数
    函数指针与指针函数
    对数据库通用性的更新操作(ssh)
  • 原文地址:https://www.cnblogs.com/xiluonanfeng/p/10855886.html
Copyright © 2020-2023  润新知