2017-08-04 68 views
1

創建和管理自己的ExecutorService與使用Spring Boot的@Async創建@Bean方法創建Executor的方法相比,是否有缺陷?Spring Boot ASync + AutoWired Executor vs manual Executor + Future/Callable?

對我而言,手動操作似乎更簡單。我簡單地創建了我的ExecutorService和一個使用它來安排任務的方法/ Callable

我春天開機,我需要:

  • 裝飾方法,採用@Async
  • 裝飾我的@Configuration配置類,@EnableAsync
  • 添加@Bean創建Executor

是有手動做這件事的潛在問題嗎?春天可能殺死線程?使用Spring Async模式還有其他好處嗎?

回答

0

看起來大部分的hangups都是對於很多Spring IoC配置都是正確的。 @Async是Spring框架的一部分,而不是Spring Boot。

您可以自己處理執行程序,因爲您已經提到過,但是我會質疑爲什麼要打擾您是否已經開始使用Spring Framework和Spring Boot。

當關閉ApplicationContext時,Spring在後臺處理某些項目,例如執行器的shutdown

在異常處理中還有一些不錯的功能,如果您選擇使用它,可以與Spring框架的調度方面一起使用。

https://docs.spring.io/spring/docs/current/spring-framework-reference/html/scheduling.html#scheduling-annotation-support-qualification

不必創建@Bean@Configuration是生活中的事實和春天,在我看來不是一個真正的退後,它只是一個與框架爭的事實。

最後,@Async摘要說明需要實現Runnable@Callable有效地實現異步功能的更快實現。