RequestBodyAdvice 和 ResponseBodyAdvice 不执行

自己实现的RequestBodyAdvice和ResponseBodyAdvice不执行啊打断点发现都没有进去。
@RestControllerAdvice(annotations=RestController.class)
publicclassEncodeResponseAdviceimplementsResponseBodyAdvice{
@Override
publicbooleansupports(MethodParametermethodParameter,ClassaClass){
returnmethodParameter.getMethodAnnotation(ResponseEncode.class)!=null;
}
@Override
publicObjectbeforeBodyWrite(Objectbody,MethodParametermethodParameter,MediaTypemediaType,ClassaClass,
ServerHttpRequestserverHttpRequest,ServerHttpResponseserverHttpResponse){
returnbody;
}
}
无论是用@RestControllerAdvice还是@ControllerAdvice都尝试过。注解里写basePackage也尝试过。整个baidugoogle能搜的内容都看过,并没有更多地方需要配置的吧?从日志里可以看到这个类已经被注册为bean了,为什么我这里就不会触发呢?
有大佬踩过这个坑吗?
MMMHUHU
浏览 5900回答 2
2回答

汪汪一只猫

已经找到问题所在的,这个ResponseBodyAdvice只支持@ResponseBody注解的controller方法,同样,RequestBodyAdvice只支持带有@RequestBody注解的controller方法参数的方法,同时上报的数据必须是jsonorxml也就是说,想要用这两个实现http内容的加密解密,是很有局限性的。并不支持表单post请求

蓝山帝景

在returnmethodParameter.getMethodAnnotation(ResponseEncode.class)!=null;前面打印一下有没有反应?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript