简介

说明

       本文用实例介绍SpringBoot如何进行全局请求处理。

方案简介

         @ControllerAdvice与@ModelAttribute结合可以全局处理请求,在调用Controller之前预先进行处理。

下边三种方式都可以全局处理请求(请求进来时,它们的执行顺序为从上到下):

  1. 过滤器
  2. 拦截器
  3. @ControllerAdvice+@ModelAttribute

本文介绍第三种

粉丝福利:很多粉丝私信问我有没有Java的面试及PDF书籍等资料,我整理了一下,包含:真实面试题汇总、简历模板、PDF书籍、PPT模板等。这些是我自己也在用的资料,面试题是面试官问到我的问题的整理,其他资料也是我自用的,真正实用、靠谱

实例

代码

全局请求处理类 

package com.example.common.advice;

import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ModelAttribute;

import javax.servlet.http.HttpServletRequest;

@ControllerAdvice
public class GlobalRequestAdvice {
    @ModelAttribute
    public void authenticationUser(HttpServletRequest request) {
        System.out.println("查询的参数:" + request.getQueryString());
        System.out.println("用户名参数:" + request.getParameter("userName"));
        System.out.println("header1值:" + request.getHeader("header1"));
    }
}

Controller 

package com.example.business.controller;

import com.example.business.entity.User;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("user")
public class UserController {

    @GetMapping("save")
    public void save(User user) {
        System.out.println("Controller保存用户:" + user);
    }
}

测试

postman访问:http://localhost:8080/user/save?userName=Tony&age=22   

//header设置:

springboot 设置全局参数 springboot全局对象_spring

后端结果

springboot 设置全局参数 springboot全局对象_spring_02

postman结果(本处我没返回东西,所以是空的)

springboot 设置全局参数 springboot全局对象_java_03