SpringMVC 拦截器如何获取 @ResponseBody 的返回值?

2019-09-12 09:30:22 +08:00
 ohyeahhh
7294 次点击
所在节点    Java
14 条回复
feb30th
2019-09-12 09:34:37 +08:00
org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice
ohyeahhh
2019-09-12 10:02:07 +08:00
@feb30th 加了这个东西 但是它不走里面的方法是什么原因呢?
feb30th
2019-09-12 10:18:58 +08:00
@ohyeahhh @ControllerAdvice 加了吗?
ohyeahhh
2019-09-12 10:21:10 +08:00
@feb30th 这个问题解决了 现在还有个问题是 ResponseBodyAdvice 这个它只能拦截到 controller 方法上带 @ResponseBody 的 拦截不到 @RestController 这种的
xiaoyaojc
2019-09-12 10:28:46 +08:00
可以先获取对应的 controller 类,然后再判断上面的注解吧,有一种是直接使用的,另一种是间接使用的,第二种你得遍历所有可能用到的注解,比较麻烦,暂时没更好的解决方案
qbhy
2019-09-12 10:32:09 +08:00
自己写个切面拦截所有控制器方法,然后方法返回都改成 object, 应该就可以再 @Around 随意更改响应了,具体可以参考 我这个项目 https://github.com/qbhy/apiboot
qbhy
2019-09-12 10:35:58 +08:00
关键点在于 aop、around
avk458
2019-09-12 11:16:08 +08:00
aop 呗
Diod
2019-09-12 13:27:57 +08:00
xaplux
2019-09-12 14:01:31 +08:00
明显 AOP 么
autogen
2019-09-12 14:14:30 +08:00
spring-aop
shwomen1234fs
2019-09-12 15:00:50 +08:00
ResponseBodyAdvice 就是 aop 啊, 而且也可以拦截 restcontroller, 楼主你确定做过测试吗?
ohyeahhh
2019-09-12 17:11:17 +08:00
@shwomen1234fs 我试了 @ResponseBodyAdvice 确实拦截不到 @RestController 里面的方法
isir1234
2019-09-12 17:29:28 +08:00
supprt 方法怎么写的?
代码贴出来看看吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/600261

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX