Spring
4.1.7中的DeferredResult:
子类可以扩展此类,以轻松地将其他数据或行为与DeferredResult相关联。例如,您可能想通过扩展类并为用户添加其他属性来关联用于创建DeferredResult的用户。这样,以后可以轻松访问用户,而无需使用数据结构来进行映射。
您可以扩展DeferredResult并将符号参数另存为类字段。
static class DeferredQuote extends DeferredResult<Quote> { private final String symbol; public DeferredQuote(String symbol) { this.symbol = symbol; }}@RequestMapping("/poll/{symbol}")public @ResponseBody DeferredQuote deferredResult(@PathVariable("symbol") String symbol) { DeferredQuote result = new DeferredQuote(symbol); responseBodyQueue.add(result); return result;}@Scheduled(fixedRate = 2000)public void processQueues() { for (DeferredQuote result : responseBodyQueue) { Quote quote = jpaStockQuoteRepository.findStock(result.symbol); result.setResult(quote); responseBodyQueue.remove(result); }}


