1、项目为前后端分离,前端需要后端的统一JSON进行解析,封装框架。SpringMVC中提供了接口,对返回结果进行统一封装。
2、代码
import com.*.*.base.BaseResponse;
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.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;
public class ResponseJsonAdvice implements ResponseBodyAdvice {
@Override
public boolean supports(MethodParameter methodParameter, Class aClass) {
Class<?> transferClass = methodParameter.getExecutable().getDeclaringClass();
RestController restController = transferClass.getAnnotation(RestController.class);
return methodParameter.hasMethodAnnotation(ResponseBody.class) || restController != null;
}
@Override
public Object beforeBodyWrite(Object value, MethodParameter methodParameter, MediaType mediaType, Class aClass, ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse) {
if(value instanceof BaseResponse){
return value;
}else {
return value;
}
}
}