V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ohyeahhh
V2EX  ›  Java

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

  •  
  •   ohyeahhh · 2019-09-12 09:30:22 +08:00 · 7241 次点击
    这是一个创建于 1659 天前的主题,其中的信息可能已经有所发展或是发生改变。
    14 条回复    2019-09-12 17:29:28 +08:00
    feb30th
        1
    feb30th  
       2019-09-12 09:34:37 +08:00
    org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice
    ohyeahhh
        2
    ohyeahhh  
    OP
       2019-09-12 10:02:07 +08:00
    @feb30th 加了这个东西 但是它不走里面的方法是什么原因呢?
    feb30th
        3
    feb30th  
       2019-09-12 10:18:58 +08:00
    @ohyeahhh @ControllerAdvice 加了吗?
    ohyeahhh
        4
    ohyeahhh  
    OP
       2019-09-12 10:21:10 +08:00
    @feb30th 这个问题解决了 现在还有个问题是 ResponseBodyAdvice 这个它只能拦截到 controller 方法上带 @ResponseBody 的 拦截不到 @RestController 这种的
    xiaoyaojc
        5
    xiaoyaojc  
       2019-09-12 10:28:46 +08:00
    可以先获取对应的 controller 类,然后再判断上面的注解吧,有一种是直接使用的,另一种是间接使用的,第二种你得遍历所有可能用到的注解,比较麻烦,暂时没更好的解决方案
    qbhy
        6
    qbhy  
       2019-09-12 10:32:09 +08:00
    自己写个切面拦截所有控制器方法,然后方法返回都改成 object, 应该就可以再 @Around 随意更改响应了,具体可以参考 我这个项目 https://github.com/qbhy/apiboot
    qbhy
        7
    qbhy  
       2019-09-12 10:35:58 +08:00
    关键点在于 aop、around
    avk458
        8
    avk458  
       2019-09-12 11:16:08 +08:00
    aop 呗
    Diod
        9
    Diod  
       2019-09-12 13:27:57 +08:00
    xaplux
        10
    xaplux  
       2019-09-12 14:01:31 +08:00
    明显 AOP 么
    autogen
        11
    autogen  
       2019-09-12 14:14:30 +08:00
    spring-aop
    shwomen1234fs
        12
    shwomen1234fs  
       2019-09-12 15:00:50 +08:00
    ResponseBodyAdvice 就是 aop 啊, 而且也可以拦截 restcontroller, 楼主你确定做过测试吗?
    ohyeahhh
        13
    ohyeahhh  
    OP
       2019-09-12 17:11:17 +08:00
    @shwomen1234fs 我试了 @ResponseBodyAdvice 确实拦截不到 @RestController 里面的方法
    isir1234
        14
    isir1234  
       2019-09-12 17:29:28 +08:00
    supprt 方法怎么写的?
    代码贴出来看看吧
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1010 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 19:57 · PVG 03:57 · LAX 12:57 · JFK 15:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.