我想添加一个横切策略,将某些Spring @RestController
方法的返回类型转换为另一个响应实体。
鉴于,我有一个界面
interface AsyncResult<T> {
public CompletableFuture<T> getResult();
}
我想写
@RequestMapping(...)
public AsyncResult getAsyncResult() { return ... }
并在某种策略中创建实际响应,例如
public ResponseEntity convert(AsyncResult result) {
if(result.getResult().isDone()) {
return new ResponseEntity(result.get(), HttpStatus.OK);
} else {
// headers e.g. AsyncResult: true, Poll-Location: /result/result-id
return new ResponseEntity(HttpStatus.ACCEPT, headers);
}
}
我想这可以通过注册类似于@ExceptionHandler
的东西来实现吗?
答案 0 :(得分:0)
看起来答案是实现org.springframework.web.method.support.HandlerMethodReturnValueHandler