package com.ku.config;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.ku.core.common.api.Result;
import org.springframework.core.MethodParameter;
import org.springframework.http.MediaType;
import org.springframework.http.server.ServerHttpRequest;
import org.springframework.http.server.ServerHttpResponse;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;
import java.util.LinkedHashMap;
@RestControllerAdvice
public class CommonResponseAdvice implements ResponseBodyAdvice {
@Override
public boolean supports(MethodParameter returnType, Class converterType) {
return true;
}
@Override
public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, Class selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) {
if (body instanceof LinkedHashMap) {
LinkedHashMap map = (LinkedHashMap) body;
if (map.get("status") != null) {
int status = (int) map.get("status");
if (404 == status) return Result.fail("404找不到页面");
}
}
if (body instanceof String) {
try {
return new ObjectMapper().writeValueAsString(Result.data(body));
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}
if (body instanceof Result) {
return body;
}
return body;
}
}
Spring boot 统一返回
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- [TOC] 前言 当前主流的 Web 应用开发通常采用前后端分离模式,前端和后端各自独立开发,然后通过数据接口沟通...
- 在项目开发中,接口与接口之间,前后端之间数据的传输都使用 Json 格式,在 Spring Boot 中,接口返回...
- 在Spring Boot项目中我们可以通过RestControllerAdvice配合实现ResponseBody...
- 四、Spring Boot与Web开发 1、使用Spring Boot 创建Spring Boot应用,选中我们需...
- 1.界面 简介通过之前的章节[//www.greatytc.com/p/6d42e70b9bc8]实现了...