为了账号安全,请及时绑定邮箱和手机立即绑定

RequestBodyAdvice 和 ResponseBodyAdvice 不执行

RequestBodyAdvice 和 ResponseBodyAdvice 不执行

RISEBY 2019-02-18 10:08:20
自己实现的 RequestBodyAdvice 和 ResponseBodyAdvice 不执行啊打断点发现都没有进去。 @RestControllerAdvice(annotations = RestController.class) public class EncodeResponseAdvice implements ResponseBodyAdvice { @Override public boolean supports(MethodParameter methodParameter, Class aClass) { return methodParameter.getMethodAnnotation(ResponseEncode.class) != null; } @Override public Object beforeBodyWrite(Object body, MethodParameter methodParameter, MediaType mediaType, Class aClass, ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse) { return body; } } 无论是用 @RestControllerAdvice 还是@ControllerAdvice 都尝试过。 注解里写 basePackage 也尝试过。整个 baidu google 能搜的内容都看过,并没有更多地方需要配置的吧?从日志里可以看到这个类已经被注册为 bean 了,为什么我这里就不会触发呢 ? 有大佬踩过这个坑吗?
查看完整描述

3 回答

?
慕妹3146593

TA贡献1820条经验 获得超9个赞

已经找到问题所在的,这个 ResponseBodyAdvice 只支持 @ResponseBody 注解的 controller 方法,
同样,RequestBodyAdvice 只支持带有 @RequestBody 注解的 controller 方法参数的方法,同时上报的数据必须是 json or xml

也就是说,想要用这两个实现 http 内容的加密解密,是很有局限性的。
并不支持表单 post 请求

查看完整回答
反对 回复 2019-03-01
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

在 return methodParameter.getMethodAnnotation(ResponseEncode.class) != null;前面打印一下有没有反应?

查看完整回答
反对 回复 2019-03-01
  • 3 回答
  • 0 关注
  • 957 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信