Java SpringMVC控制器在Servlet2.5中异步执行任务
我正在Java6JVM上开发一个SpringMVC应用程序,运行在Servlet2.5(Tomcat)环境中。我需要开发一个控制器方法来执行一个长时间运行的任务(大型数据库查询、生成报告和向用户发送电子邮件)。有理由,我希望任务异步运行。当我四处搜索时,我发现了很多基于Servlet3和AsyncTask的文章,我知道我的环境不支持这些文章Java SpringMVC控制器在Servlet2.5中异步执行任务,java,spring-mvc,asynchronous,concurrency,runnable,Java,Spring Mvc,Asynchronous,Concurrency,Runnable,我正在Java6JVM上开发一个SpringMVC应用程序,运行在Servlet2.5(Tomcat)环境中。我需要开发一个控制器方法来执行一个长时间运行的任务(大型数据库查询、生成报告和向用户发送电子邮件)。有理由,我希望任务异步运行。当我四处搜索时,我发现了很多基于Servlet3和AsyncTask的文章,我知道我的环境不支持这些文章 我是否可以使用Java的一个执行器(例如,ExecutorService/NewFixedThreadPool)从控制器方法执行Runnable任务,以便
- 我是否可以使用Java的一个执行器(例如,
/ExecutorService
)从控制器方法执行NewFixedThreadPool
任务,以便在任务异步进行时立即从方法返回Runnable
- 如何确保executor与web应用程序一起正常关闭
- 我是否可以使用一个基于Spring的执行器来访问所有自动连接的依赖项,而不是创建对它们的
最终
引用
异步方法是SpringBean方法,可以访问它们所属bean的自连线依赖项。Spring有@Async注释,您可能想查看它。Nizel,我可以用
@Async
注释任何方法,包括控制器方法吗?看看你提供的链接,看起来是这样,但我想核实一下。特别是因为我使用的是Servlet2.5。我不这么认为,这没有多大意义。您希望同步处理请求并提供同步响应。但是在处理这个请求时,您希望启动一个异步任务,这可以通过调用另一个用@Async
注释的Springbean方法轻松完成。感谢您的澄清。是的,我是怎么想让请求异步的?!我明天早上第一件事就去看看。