Java 在返回modelAndView后执行任务

Java 在返回modelAndView后执行任务,java,multithreading,spring,spring-mvc,Java,Multithreading,Spring,Spring Mvc,在Spring中,是否有方法在返回视图后执行任务,或者我需要创建一个线程池并执行它 例: 公共模型和视图HandlerRequest(HttpServletRequest, HttpServletResponse)引发异常{ 映射数据=新的HashMap(); //做点什么 ExecuteSomesTuffButtonWaitfortheResult(); 返回新的ModelAndView(“结果”,数据); } Spring包含一个面向方面的编程框架,允许您指定要在代码的各个部分之前和之后运行

在Spring中,是否有方法在返回视图后执行任务,或者我需要创建一个线程池并执行它

例:

公共模型和视图HandlerRequest(HttpServletRequest, HttpServletResponse)引发异常{ 映射数据=新的HashMap(); //做点什么 ExecuteSomesTuffButtonWaitfortheResult(); 返回新的ModelAndView(“结果”,数据); }
Spring包含一个面向方面的编程框架,允许您指定要在代码的各个部分之前和之后运行的代码,这些部分可能就是您要查找的内容。看看Spring文档:。

如果您真的不想等待结果,那么您应该在不同的线程中运行它。例如,使用。

可以使用@axtavt said这样的任务执行器,也可以使用

是的,这只是生成线程或(更好)从池中获取线程的问题。这与春天无关


但是在查看代码时,您会发现视图可能只是渲染一个部分填充的甚至是空的贴图。(如果不将映射传递给ExecuteSomesTuffButtonWaitForTheResult()方法,则保证映射为空。)不清楚您试图执行的操作,但我怀疑您是否打算返回部分或空映射,并且当用户查看网页时,映射不会填满。如果您更仔细地描述您正在尝试做的事情,我们可能会有一些替代想法。

如果您使用的是Spring 3,最简单的方法是使用@Async为executesMestuffButtonWaitFortheResult方法添加注释

在您的配置中:

<task:annotation-driven executor="yourTaskExecutor" scheduler="yourTaskScheduler"/>


更多信息

我没有填写视图,因为这是一个示例。我只是想渲染视图,但在不需要渲染的情况下继续进行一些工作。(以更快地将结果返回给客户端)
<task:annotation-driven executor="yourTaskExecutor" scheduler="yourTaskScheduler"/>