当前位置: 首页 > 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:sch

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • github源码指引:共享内存、数据结构与算法:字符串池StringPool
  • JVM4-运行时数据区
  • JS中的闭包
  • C语言指针进阶二:(函数指针数组,转移表)
  • ElasticSearch学习笔记(三)RestClient操作文档、DSL查询文档、搜索结果排序
  • redis主从+高可用切换+负载均衡
  • FPGA开发:初识FPGA
  • 建行的一些记录
  • 更懂消费者 火山引擎数据飞轮助力乳企数智升级
  • AI机械键盘,罗技推出首款AI机械键盘K98M
  • 云计算之数据库
  • K8S 发布应用
  • 《零散知识点 · Kafka 知识拓展》
  • 前端项目开发之安装prettier和使用
  • 如何在平凡的生活中看到商机?
  • 03Go 类型总结
  • conda常用的命令
  • HashMap剖析之内部结构
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • JS 面试题总结
  • select2 取值 遍历 设置默认值
  • SpiderData 2019年2月13日 DApp数据排行榜
  • webpack项目中使用grunt监听文件变动自动打包编译
  • Xmanager 远程桌面 CentOS 7
  • 基于组件的设计工作流与界面抽象
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 微信开放平台全网发布【失败】的几点排查方法
  • 微信小程序:实现悬浮返回和分享按钮
  • 用简单代码看卷积组块发展
  • 自制字幕遮挡器
  • ionic异常记录
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • ​【数据结构与算法】冒泡排序:简单易懂的排序算法解析
  • # C++之functional库用法整理
  • #在 README.md 中生成项目目录结构
  • (06)Hive——正则表达式
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (10)ATF MMU转换表
  • (CVPRW,2024)可学习的提示:遥感领域小样本语义分割
  • (delphi11最新学习资料) Object Pascal 学习笔记---第2章第五节(日期和时间)
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (创新)基于VMD-CNN-BiLSTM的电力负荷预测—代码+数据
  • (纯JS)图片裁剪
  • (二)fiber的基本认识
  • (二)pulsar安装在独立的docker中,python测试
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (接口封装)
  • (转)程序员疫苗:代码注入
  • (转载)深入super,看Python如何解决钻石继承难题
  • (自适应手机端)行业协会机构网站模板
  • .NET Framework 4.6.2改进了WPF和安全性