@ControllerAdvice
public class ResponseDataHandler 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 ResponseBodyDTO(body);
}
}
}
让springboot装配这个拦截器
@Configuration
public class WebConfig implements WebMvcConfigurer{
@Bean
public HttpMessageConverters useConverters() {
return new HttpMessageConverters(new FastJsonHttpMessageConverter());
}
}