springBoot统一响应类型3.5.3版本

前言:

通过实践而发现真理,又通过实践而证实真理和发展真理。从感性认识而能动地发展到理性认识,又从理性认识而能动地指导革命实践,改造主观世界和客观世界。实践、认识、再实践、再认识,这种形式,循环往复以至无穷,而实践和认识之每一循环的内容,都比较地进到了高一级的程度。

简单回顾:全阶段

第一阶段:统一响应的简单应用

第二阶段:统一响应的起源

第三阶段:统一响应实体的起源

第四阶段:统一响应实体的面向对象优化

第五阶段:全局异常响应

正片:

第六阶段:全局响应

java 复制代码
@Slf4j
@ControllerAdvice
public class GlobalApiResultHandler implements ResponseBodyAdvice<Object> {

    @Override
    public boolean supports(MethodParameter returnType, Class<? extends HttpMessageConverter<?>> converterType) {
        return true;
    }

    @Override
    public Object beforeBodyWrite(Object body,
                                  MethodParameter returnType,
                                  MediaType selectedContentType,
                                  Class<? extends HttpMessageConverter<?>> selectedConverterType,
                                  ServerHttpRequest request,
                                  ServerHttpResponse response) {
        /**
         * 因为异常响应返回的是一个ApiResult,会导致重复
         * 所以使用一个判断,如果是ApiResult的,强转换,减少重复
         */
        log.warn("操作" + body);
        if (body instanceof ApiResult){
            return (ApiResult) body;
        }

        return ApiResultUnit.success(body);
    }
}

六大阶段

第一阶段:简单运用

第二阶段:起源

第三阶段:基础实体类

第四阶段:实体加工类(工具类)

第五阶段:全局异常响应

第六阶段:全局成功响应

相关推荐
不倒翁玩偶17 分钟前
IDEA导入新的SpringBoot项目没有启动按钮
java·spring boot·intellij-idea
小小小米粒32 分钟前
Maven Tools
java
kali-Myon1 小时前
2025春秋杯网络安全联赛冬季赛-day1
java·sql·安全·web安全·ai·php·web
我是咸鱼不闲呀1 小时前
力扣Hot100系列20(Java)——[动态规划]总结(下)( 单词拆分,最大递增子序列,乘积最大子数组 ,分割等和子集,最长有效括号)
java·leetcode·动态规划
清水白石0081 小时前
深入解析 LRU 缓存:从 `@lru_cache` 到手动实现的完整指南
java·python·spring·缓存
符哥20081 小时前
C++ 进阶知识点整理
java·开发语言·jvm
Sayuanni%31 小时前
初阶_多线程1(线程含义与关键属性)
java
程序媛徐师姐1 小时前
Java基于微信小程序的模拟考试系统,附源码+文档说明
java·微信小程序·java模拟考试系统小程序·模拟考试微信小程序·模拟考试系统小程序·模拟考试小程序·java模拟考试小程序
疯狂敲代码的老刘2 小时前
JDK 1.6到25 全版本网盘合集 (Windows + Mac + Linux)
java·linux·windows·macos·jdk
夕除2 小时前
js--15
java·jvm·spring