SpringBoot全局处理系列--全局请求处理

电玩女神 2023-09-28 10:02 167阅读 0赞

原文网址: SpringBoot全局处理系列—全局异常处理_IT利刃出鞘的博客-CSDN博客

简介

说明

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

方案简介

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

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

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

本文介绍第三种

系列文章

SpringBoot全局处理我写了一个系列 :

  1. SpringBoot全局处理系列—@ControllerAdvice_IT利刃出鞘的博客-CSDN博客
  2. SpringBoot全局处理系列—全局异常处理_IT利刃出鞘的博客-CSDN博客
  3. SpringBoot全局处理系列—全局响应处理_IT利刃出鞘的博客-CSDN博客
  4. SpringBoot全局处理系列—全局请求处理_IT利刃出鞘的博客-CSDN博客
  5. SpringBoot全局处理系列—全局格式处理_IT利刃出鞘的博客-CSDN博客

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

实例

代码

全局请求处理类

  1. package com.example.common.advice;
  2. import org.springframework.web.bind.annotation.ControllerAdvice;
  3. import org.springframework.web.bind.annotation.ModelAttribute;
  4. import javax.servlet.http.HttpServletRequest;
  5. @ControllerAdvice
  6. public class GlobalRequestAdvice {
  7. @ModelAttribute
  8. public void authenticationUser(HttpServletRequest request) {
  9. System.out.println("查询的参数:" + request.getQueryString());
  10. System.out.println("用户名参数:" + request.getParameter("userName"));
  11. System.out.println("header1值:" + request.getHeader("header1"));
  12. }
  13. }

Controller

  1. package com.example.business.controller;
  2. import com.example.business.entity.User;
  3. import org.springframework.web.bind.annotation.GetMapping;
  4. import org.springframework.web.bind.annotation.RequestMapping;
  5. import org.springframework.web.bind.annotation.RestController;
  6. @RestController
  7. @RequestMapping("user")
  8. public class UserController {
  9. @GetMapping("save")
  10. public void save(User user) {
  11. System.out.println("Controller保存用户:" + user);
  12. }
  13. }

测试

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

//header设置:

watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBASVTliKnliIPlh7rpnpg_size_20_color_FFFFFF_t_70_g_se_x_16

后端结果

watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBASVTliKnliIPlh7rpnpg_size_20_color_FFFFFF_t_70_g_se_x_16 1

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

watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBASVTliKnliIPlh7rpnpg_size_20_color_FFFFFF_t_70_g_se_x_16 2

发表评论

表情:
评论列表 (有 0 条评论,167人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Springboot 全局异常处理

    最近在做项目时需要对异常进行全局统一处理,主要是一些分类入库以及记录日志等,因为项目是基于Springboot的,所以去网络上找了一些博客文档,然后再结合项目本身的一些特殊需求