Spring 延迟结果空体
我看到了,但是我现在有这个问题Spring 延迟结果空体,spring,spring-mvc,Spring,Spring Mvc,我看到了,但是我现在有这个问题 如果我将控制器更改为返回响应性,则主体将正常运行,但如果它返回DeferredResult则使用DeferredResult不仅仅是更改控制器的响应类型。返回DeferredResult的控制器可能会将请求的处理委托给线程池(或某些异步机制),而实际执行请求的任何操作都必须在DeferredResult上设置响应。大概是这样的: 在控制器中: DeferredResult deferredResult = new DeferredResult<>();
如果我将控制器更改为返回
响应性
,则主体将正常运行,但如果它返回DeferredResult则使用DeferredResult
不仅仅是更改控制器的响应类型。返回DeferredResult
的控制器可能会将请求的处理委托给线程池(或某些异步机制),而实际执行请求的任何操作都必须在DeferredResult
上设置响应。大概是这样的:
在控制器中:
DeferredResult deferredResult = new DeferredResult<>();
// pass deferredResult into a runnable task (or something similar)
// which is scheduled for execution via a thread pool (or something similar)
return deferredResult;
// do some work
// ...
deferredResult.setResponse(responseBody);
使用DeferredResult
不仅仅是更改控制器的响应类型。返回DeferredResult
的控制器可能会将请求的处理委托给线程池(或某些异步机制),而实际执行请求的任何操作都必须在DeferredResult
上设置响应。大概是这样的:
在控制器中:
DeferredResult deferredResult = new DeferredResult<>();
// pass deferredResult into a runnable task (or something similar)
// which is scheduled for execution via a thread pool (or something similar)
return deferredResult;
// do some work
// ...
deferredResult.setResponse(responseBody);
是的,我们有一个设置主体的回调。我发现我们有一个wierd过滤器将响应主体剥离到链的更深处。是的,我们有一个回调来设置主体。我发现我们有一个wierd过滤器,它将响应体进一步剥离到链的下游。