Spring Aspect 获取请求参数

切片(Aspect)也就是Spring AOP

实现Aspect的主要步骤:

1、在哪里切入

  。在哪个方法起作用

  。什么时候起作用

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

下面是代码实现

/**
 * 切片Aspect @Around的使用
 * 1、添加 @Aspect 和@Component注解
 * 2、方法是用@Around注解和传入ProceedingJoinPoint对象
 * 虽然切片可以拿到是调用方法时候传过来的参数和值
 * 但是....却拿不了原始的请求和响应对象了
 *
 *
 */
@Aspect
@Component
public class DemoAspect {
    /**
     * 切入点(主要是注解)
     *
     * 1. 哪些方法上起作用
     *
     * 2.在什么时候起作用
     *
     * 相关注解有4个
     * [email protected] 调用方法前
     * [email protected]  调用方法后
     * [email protected] 方法抛出异常的时候
     * [email protected] 包括了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

时间: 2024-10-03 16:55:25

Spring Aspect 获取请求参数的相关文章

Java Spring Controller 获取请求参数的几种方法

技术交流群:233513714  1.直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交.若"Content-Type"="application/x-www-form-urlencoded",可用post提交 url形式:http://localhost:8080/SSMDemo/demo/addUser1?username=lixiaoxi&password=111111 提交的参数需要和Contr

Spring Controller 获取请求参数的几种方法

1.直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交.若"Content-Type"="application/x-www-form-urlencoded",可用post提交        url形式:http://localhost:8080/SSMDemo/demo/addUser1?username=lixiaoxi&password=111111 提交的参数需要和Controller方法中的入

学习SpirngMVC之如何获取请求参数

学习SpringMVC——如何获取请求参数 @RequestParam,你一定见过:@PathVariable,你肯定也知道:@QueryParam,你怎么会不晓得?!还有你熟悉的他(@CookieValue)!她(@ModelAndView)!它(@ModelAttribute)!没错,仅注解这块,spring mvc就为你打开了五彩斑斓的世界.来来来,不要兴(mi)奋(hu),坐下来,我们好好聊聊这么些个注解兄弟们~~~(wait, 都没有听过? 好,来,你坐前排,就你!) 一.spring

学习SpringMVC——如何获取请求参数

@RequestParam @PathVariable @QueryParam @CookieValue @ModelAndView @ModelAttribute 一.spring mvc如何匹配请求路径--"请求路径哪家强,RequestMapping名远扬" @RequestMapping是用来映射请求的,比如get请求,post请求,或者REST风格与非REST风格的. 该注解可以用在类上或者方法上,如果用于类上,表示该类中所有方法的父路径. @Controller的注解,该注

SpringBoot使用AOP获取请求参数

package com.*.aop; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.Signature; impo

Struts2 -- 获取请求参数

1.直接将action做一个model,就可以得到请求参数. 缺点:需要单独定义javaBean,将action中属性copy到javaBean中.                     优点:简单.                                 这种方式 ,底层是通过反射来实现的. //获取请求参数 属性驱动 第一种,直接将action做为model public class DemoAction extends ActionSupport { private String

JavaWeb获取请求参数的两种方式

第一种:通过获取缓冲流读取参数 public void registerUser(HttpServletRequest request, HttpServletResponse response)throws  Exception  { //直接获取请求参数,通过缓冲流读取数据  BufferedReader br=request.getReader();  String inputLine = "";  String json = "";      while (

php 获取请求参数

$value = $_POST["value"];//取得post中的 $value=$_REQUEST["value"];//取得get或者post中的参数(哪个有就取得哪个) $value=$_GET["value"];//取得get中的参数 php 获取请求参数,布布扣,bubuko.com

Spring如何绑定请求参数或PathVariable参数绑定到对象,并做使用@Valid做JSR3

Spring如何绑定请求参数或PathVariable参数绑定到对象,并做使用@Valid做JSR303校验 问题描述 以前在Spring中只对@RequestBody映射的请求参数使用过@Valid做JSR303校验,RequestBody一般适用与Json或者Xml报文,如果是表单提交的参数(a=xxx&b=xxx),或者通过@PathVariable从url映射过来的参数就不懂得怎么做校验了.后来查阅官方文档找到了实现方法. 解决方案 首先这里还是校验那些把请求参数映射成事先定义好的参数对