Spring-使用Spring创建线程:TaskExecutor

在Web应用程序中使用线程并不罕见,特别是当您需要开发长时间运行的任务时。

考虑到Spring,我们必须特别注意并使用它已经提供的工具,而不是产生我们自己的线程。 我们希望我们的线程能够在Spring中进行管理,因此能够使用应用程序的其他组件而不会产生任何影响,并且可以优雅地关闭应用程序,而无需进行任何工作。

Spring提供TaskExecutor作为处理执行者的抽象。 Spring的TaskExecutor接口与java.util.concurrent.Executor接口相同。 Spring发行版中包含了许多预先构建的TaskExecutor实现,您可以从官方文档中找到更多关于它们的信息。 通过向您的Spring环境提供TaskExecutor实现,您将能够将TaskExecutor注入到Bean中并有权访问托管线程。

 

第一步是将TaskExecutor配置添加到我们的Spring应用程序中。


 

一旦我们有了我们的执行者设置过程很简单。 我们将执行程序注入Spring组件,然后提交包含要执行的任务的Runnable类。

由于我们的异步代码可能需要与我们的应用程序的其他组件进行交互并注入它们,所以最好的方法是创建原型有作用域的可运行实例。


 

然后我们准备将执行器注入我们的服务并使用它来执行可运行的实例。