用於項目中全局處理返回結果ide
自定義返回結果實體:this
public class Result<T> implements Serializable { private static final long serialVersionUID = -2354377668069235864L; public int code; private T data; private String message = "調用成功!"; public Result(){ } public Result(T data){ this.data = data; } public Result(int code, String message){ this.code = code; this.message = message; } public Integer getCode() { return code; } public void setCode(Integer code) { this.code = code; } public T getData() { return data; } public void setData(T data) { this.data = data; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public String toJson(){ return JSON.toJSONString(this); } public static Result<?> fail(String message) { return new Result<>(500,message); } }
@ControllerAdvice處理返回結果spa
@ControllerAdvice public class ResponseAdvisor 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) { String requestPath = request.getURI().getPath(); /*if (!requestPath.startsWith("/canal/park")) { return body; }*/ if (body instanceof Result) { return body; } return new Result(body); } }