让我们说我有一个看起来像这样的控制器:
@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上对其进行配置。
但是我无法使ResponseBodyAdvice
转换响应类类型。