Spring 使用@ControllerAdvice时,弹簧mvc静止返回标准响应不工作

Spring 使用@ControllerAdvice时,弹簧mvc静止返回标准响应不工作,spring,Spring,我想使用@ControllerAdvice创建一个标准响应 @Override public boolean supports(MethodParameter returnType, Class<? extends HttpMessageConverter<?>> converterType) { List<Annotation> annotations = Arrays.asList(returnType.getMethodA

我想使用@ControllerAdvice创建一个标准响应

    @Override
    public boolean supports(MethodParameter returnType, Class<? extends HttpMessageConverter<?>> converterType) {
        List<Annotation> annotations = Arrays.asList(returnType.getMethodAnnotations());
        return annotations.stream().anyMatch(annotation -> annotation.annotationType().equals(JsonFilter.class));
    }
我已经为设置状态代码和消息编写了自定义注释

    @Override
    public boolean supports(MethodParameter returnType, Class<? extends HttpMessageConverter<?>> converterType) {
        List<Annotation> annotations = Arrays.asList(returnType.getMethodAnnotations());
        return annotations.stream().anyMatch(annotation -> annotation.annotationType().equals(JsonFilter.class));
    }
我正在处理类演员异常

    @Override
public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, Class<? extends HttpMessageConverter<?>> selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) {
    JsonFilter annotation = returnType.getMethodAnnotation(JsonFilter.class);
    String statusCode = annotation.status();
    String message = annotation.message();
    ResponseHeader<Object> responseHeader = new ResponseHeader(statusCode,message,body);
    System.out.println(responseHeader);
    return responseHeader;
}
    @Override
    public boolean supports(MethodParameter returnType, Class<? extends HttpMessageConverter<?>> converterType) {
        List<Annotation> annotations = Arrays.asList(returnType.getMethodAnnotations());
        return annotations.stream().anyMatch(annotation -> annotation.annotationType().equals(JsonFilter.class));
    }

需要重写supports方法

    @Override
    public boolean supports(MethodParameter returnType, Class<? extends HttpMessageConverter<?>> converterType) {
        List<Annotation> annotations = Arrays.asList(returnType.getMethodAnnotations());
        return annotations.stream().anyMatch(annotation -> annotation.annotationType().equals(JsonFilter.class));
    }
@覆盖
公共布尔支持(MethodParameter returnType,Class>converterType){
列表注释=Arrays.asList(returnType.getMethodAnnotations());
返回annotations.stream().anyMatch(annotation->annotation.annotationType().equals(JsonFilter.class));
}

如果您使用的是低于8的java版本,请在supports方法中将ResponseBody.class更改为JsonFilter.class。