【发布时间】:2018-02-25 01:47:21
【问题描述】:
我正在阅读 this tutorial,它解释了在 servlet 3.0 规范和 Spring 中使用 Callable 和 DeferredResult 之间的区别。对于Callables spring 管理线程,那么我假设我们需要配置一个线程池?这是如何为 Spring Boot 配置的?
【问题讨论】:
标签: java multithreading spring-mvc spring-boot
我正在阅读 this tutorial,它解释了在 servlet 3.0 规范和 Spring 中使用 Callable 和 DeferredResult 之间的区别。对于Callables spring 管理线程,那么我假设我们需要配置一个线程池?这是如何为 Spring Boot 配置的?
【问题讨论】:
标签: java multithreading spring-mvc spring-boot
WebMvcConfigurationSupport.configureAsyncSupport() 用于设置异步请求处理。 AsyncSupportConfigurer 为所有返回 Callable 和 DeferredResult 的控制器方法提供配置。可以通过AsyncSupportConfigurer.setTaskExecutor() 使用适当的AsyncTaskExecutor 实现(例如ThreadPoolTaskExecutor)来配置底层线程池。也可以通过返回 WebAsyncTask 而不是 Callable 来根据每个请求更新此配置。链接的 javadocs 更详细地描述了所有这些。
【讨论】: