如何添加将响应从一类转换为另一类的中间件

让我们说我有一个看起来像这样的控制器:

@RestController
public class TestController {
  @RequestMapping(path = "/test",method = RequestMethod.GET)
  public Response hello {
    return new Response("hello");
  }
}

Response类如下:

public class Response {
  public String text;

  public Response(String text) {
    this.text = text;
  }
}

现在,如果有人打电话给/ test他会得到

{
  "text": "hello"
}

Response在我所有的控制器中共享。

所以现在我想以某种方式将此Response转换为ResponseEntity<Response>并对其进行操作,然后再将其发送到一个位置。

我想到了“拦截器”,但发现了这个便条:

  

请注意,在@ResponseBody和ResponseEntity方法中,postHandle的用处不大,在HandlerAdapter内和postHandle之前,将其写入并提交响应。这意味着对响应进行任何更改为时已晚,例如添加额外的标头。对于这种情况,您可以实现ResponseBodyAdvice并将其声明为Controller Advice Bean或直接在RequestMappingHandlerAdapter上对其进行配置。

source

但是我无法使ResponseBodyAdvice转换响应类类型。

zhoufengao 回答:如何添加将响应从一类转换为另一类的中间件

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3159942.html

大家都在问