<article class=“article fmt article-content”><p>在Spring MVC中,异步解决是一个十分实用的个性。它容许咱们在解决简单的业务逻辑或期待其余资源时,开释服务器资源,进步零碎的吞吐量。然而,如果你在应用这个个性时遇到了谬误,可能是因为你没有在Servlet或者Spring的配置中启用异步反对。</p><p>在Servlet 3.0及以上版本中,提供了异步解决的反对。你能够通过在web.xml中增加 <code><async-supported>true</async-supported></code>来开启异步反对,如下:</p><pre><code><servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> <async-supported>true</async-supported></servlet></code></pre><p>如果你应用的是Spring Boot,那么你能够在Spring的配置文件中增加 <code>spring.mvc.async.request-timeout</code>和 <code>spring.mvc.async.request-timeout</code>来开启异步反对,如下:</p><pre><code>spring.mvc.async.request-timeout=5000spring.mvc.async.request-timeout=5000</code></pre><p>当然,你还须要在你的Controller中返回一个 <code>Callable</code>或者 <code>DeferredResult</code>对象,以便Spring MVC晓得这是一个异步的申请。例如:</p><pre><code>@RequestMapping("/async")@ResponseBodypublic Callable<String> async() { return new Callable<String>() { @Override public String call() throws Exception { // 这里是你的异步逻辑 return “异步申请后果”; } };}</code></pre><p>以上就是在Spring MVC中开启异步申请的办法。如果你依照以上步骤操作还是遇到了问题,那么可能是其余起因导致的,比方你的Servlet容器不反对异步解决,或者你的异步逻辑有问题。这时候,你可能须要查看更具体的错误信息,或者寻求专业人士的帮忙。</p></article>