当前位置: 首页 > news >正文

【Spring Boot 3】【Web】统一封装 HTTP 响应体

【Spring Boot 3】【Web】统一封装 HTTP 响应体

  • 背景
  • 介绍
  • 开发环境
  • 开发步骤及源码
  • 工程目录结构
  • 总结

背景

软件开发是一门实践性科学,对大多数人来说,学习一种新技术不是一开始就去深究其原理,而是先从做出一个可工作的DEMO入手。但在我个人学习和工作经历中,每次学习新技术总是要花费或多或少的时间、检索不止一篇资料才能得出一个可工作的DEMO,这占用了我大量的时间精力。因此本文旨在通过一篇文章即能还原出可工作的、甚至可用于生产的DEMO,期望初学者能尽快地迈过0到1的这一步骤,并在此基础上不断深化对相关知识的理解。
为达以上目的,本文会将开发环境、工程目录结构、开发步骤及源码尽量全面地展现出来,文字描述能简则简,能用代码注释的绝不在正文中再啰嗦一遍,正文仅对必要且关键的信息做重点描述。

介绍

本文介绍开发 Spring Boot Web 应用时如何使用 ResponseBodyAdvice 统一封装 HTTP 响应体(HTTP Response Body)。

ResponseBodyAdvice 拦截带有 @ResponseBody 注解或返回类型为 ResponseEntity 的 Controller 方法,在这些方法执行完成之后且 HttpMessageConverter 写入 HTTP Response Body 之前执行指定逻辑,以达到统一封装 HTTP 响应体的目的,包括:

  • 将 HTTP Response Body 封装成统一数据格式;
  • 对 HTTP Response Body 执行加密;
  • 对 HTTP Response Body 执行编码。

开发环境

分类名称版本
操作系统WindowsWindows 11
JDKOracle JDK21.0.1
IDEIntelliJ IDEA2023.3.7
构建工具Apache Maven3.9.9

开发步骤及源码

1> 创建Maven工程,添加依赖。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:s
http://www.lryc.cn/news/432392.html

相关文章:

  • Linux如何做ssh反向代理
  • Verilog语法+:和-:有什么用?
  • stm32F103 串口2 中断 无法接收指定字符串 [已解决]
  • Matlab/Simulink和AMEsim联合仿真(以PSO-PID算法为例)
  • 超声波测距模块HC-SR04(基于STM32F103C8T6HAL库)
  • Go语言结构体和元组全面解析
  • 集成电路学习:什么是SDK软件开发工具包
  • java后端如何发送http请求
  • 装WebVideoCreator记录
  • 【编程底层思考】什么是GC Roots
  • [STL --stack_queue详解]stack、queue,deque,priority_queue,容器适配器
  • 240907-Gradio插入Mermaid流程图并自适应浏览器高度
  • ubuntu 安装python3 教程
  • NOR Flash、NAND Flash……
  • 【高性能代码】提高代码的性能有哪些方式,如何写出高性能代码,一段代码如何提高这段代码的执行性能,高性能代码开发
  • 2024整理 iptables防火墙学习笔记大全_modepro iptables
  • 实验记录 | 点云处理 | K-NN算法3种实现的性能比较
  • 【OJ】常用技巧
  • Redis:Redis性能变慢的原因
  • Linux多线程——利用C++模板对pthread线程库封装
  • SpringBoot教程(十五) | SpringBoot集成RabbitMq(消息丢失、消息重复、消息顺序、消息顺序)
  • TensorRT-LLM高级用法
  • 文心一言功能新升级:读文档、懂翻译、能识图
  • C++机试——走方格的方案
  • Bootstrap 字体图标无法显示问题,<i>标签字体图标无法显示问题
  • docker registry 仓库加密
  • 利用高德+ArcGIS优雅获取任何感兴趣的矢量边界
  • 炮弹【USACO】
  • python如何读取excel文件内的数据
  • Java项目: 基于SpringBoot+mybatis+maven+mysql教师工作量管理系统(含源码+数据库+毕业论文)