为什么 Spring 提供自己的任务执行器?
Why do Spring offer its own task executors?
为什么我们需要 AsyncTaskExecutor
(及其实现,即 SimpleAsyncTaskExecutor
),而 Java 已经提供了这些(通过 Executors
)?
TaskExecutor
基本上是对标准 JDK 的 Executor
.
的 Spring 抽象
Equivalent to JDK 1.5's java.util.concurrent.Executor
interface; extending it now in Spring 3.0, so that clients may declare a dependency on an Executor
and receive any TaskExecutor
implementation.
Spring 伙计们建立自己的生态系统并关心它如何与标准 JDK 方式共存。通常,这些实现更具竞争力,API 更丰富且面向 Spring(在 Spring 框架本身中积极使用)。
SimpleAsyncTaskExecutor
是 AsyncTaskExecutor
的实现,在 运行 @Async
方法时默认使用。但是,您可以提供自己的 TaskExecutor
来代替默认的。 Spring之所以这样做是为了给你更多的灵活性。
为什么我们需要 AsyncTaskExecutor
(及其实现,即 SimpleAsyncTaskExecutor
),而 Java 已经提供了这些(通过 Executors
)?
TaskExecutor
基本上是对标准 JDK 的 Executor
.
Equivalent to JDK 1.5's
java.util.concurrent.Executor
interface; extending it now in Spring 3.0, so that clients may declare a dependency on anExecutor
and receive anyTaskExecutor
implementation.
Spring 伙计们建立自己的生态系统并关心它如何与标准 JDK 方式共存。通常,这些实现更具竞争力,API 更丰富且面向 Spring(在 Spring 框架本身中积极使用)。
SimpleAsyncTaskExecutor
是 AsyncTaskExecutor
的实现,在 运行 @Async
方法时默认使用。但是,您可以提供自己的 TaskExecutor
来代替默认的。 Spring之所以这样做是为了给你更多的灵活性。