自己实现的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请求

蓝山帝景
TA贡献1843条经验 获得超7个赞
在returnmethodParameter.getMethodAnnotation(ResponseEncode.class)!=null;前面打印一下有没有反应?
添加回答
举报
0/150
提交
取消