Spring: 后端状态码如何与http状态码保持一致

文章目录

一、背景

今天使用postman在做接口测试的时候发现了一个有趣的问题:响应体的status和http的status一样,出于好奇对该现象进行了总结。

二、解决方案

通过拦截器ResponseBodyAdvice,做到统一拦截

java 复制代码
@ControllerAdvice(basePackages = "*.*.*")
@RestControllerAdvice(basePackages = "*.*.*")
public class GlobalBizResponseBodyAdvice implements ResponseBodyAdvice {

    @Override
    public boolean supports(MethodParameter methodParameter, Class aClass) {
        return true;
    }

    @Override
    public Object beforeBodyWrite(Object obj, MethodParameter methodParameter, MediaType mediaType, Class aClass, ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse) {
       if (obj instanceof BizResponse) {
       		int code = (int) ((BizResponse) body).getCode();
            response.setStatusCode(HttpStatus.valueOf(code));
			return obj;
       }
       response.setStatusCode(HttpStatus.valueOf(200));
        return BizResponse.success(obj);
    }
相关推荐
一招定胜负3 分钟前
课堂教学质量综合评分系统
java·linux·前端
Hui Baby4 分钟前
spring优雅释放资源
java·spring
启山智软38 分钟前
【启山智软智能商城系统技术架构剖析】
java·前端·架构
一线大码39 分钟前
Java 使用国密算法实现数据加密传输
java·spring boot·后端
我命由我1234544 分钟前
Android Gradle - Gradle 自定义插件(Build Script 自定义插件、buildSrc 自定义插件、独立项目自定义插件)
android·java·java-ee·kotlin·android studio·android-studio·android runtime
Riu_Peter1 小时前
【技术】Maven 配置 settings.xml 轮询下载
xml·java·maven
十六年开源服务商1 小时前
2026年WordPress网站地图完整指南
java·前端·javascript
Edward111111112 小时前
3月17枚举
java·开发语言
凡。。。2962 小时前
阿里云产品说明
java