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

RequestBodyAdvice 和 ResponseBodyAdvice 不执行

RequestBodyAdvice 和 ResponseBodyAdvice 不执行

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

2 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

已经找到问题所在的,这个ResponseBodyAdvice只支持@ResponseBody注解的controller方法,同样,RequestBodyAdvice只支持带有@RequestBody注解的controller方法参数的方法,同时上报的数据必须是jsonorxml
也就是说,想要用这两个实现http内容的加密解密,是很有局限性的。并不支持表单post请求
                            
查看完整回答
反对 回复 2019-05-24
?
蓝山帝景

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

在returnmethodParameter.getMethodAnnotation(ResponseEncode.class)!=null;前面打印一下有没有反应?
                            
查看完整回答
反对 回复 2019-05-24
  • 2 回答
  • 0 关注
  • 5899 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号