Spring boot專案設定返回資料為JSON固定格式
阿新 • • 發佈:2019-01-01
package com.test.config; import com.test.entity.ResponseTemplate; 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.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice; /** * 用於預處理httpMessageConverter */ @ControllerAdvice//作用於controller中使用了註解@RequestMapping的方法 public class DataResponseBodyAdvice 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(returnType.hasMethodAnnotation(ExceptionHandler.class)) {//處理異常,可以再新增一個異常處理的類,用於處理異常返回格式 return body; } else { return new ResponseTemplate(body); } } }