Spring MVCを使用すると、コントローラはDeferredResult
とListenableFuture
(ListenableFutureTask
で実装されています)が非同期応答を返します。違いは何ですか?いつ私はそれらのそれぞれを使うべきですか?spring mvc:DeferredResultとListenableFutureの違いは?
答えて
DeferredResultは、結果を生成するためのCallableの代替品です。追加のデータ構造を必要とせずに後で一部のデータにアクセスする必要がある場合に備えて、DeferredResultを拡張して追加のデータまたはビヘイビアを関連付けることもできます。しかし、それはそれについてです。 ListenableFuture futureは、コールバックを非同期タスクに追加する必要がある場合に便利です。 GuavaのListenableFutureは、実際には、私がSpringのListenableFutureには見えない合成を許可します。 あなたはSpringでもサポートされているCompletableFutureを使いたいと思っています。 あなたはこれをチェック、非常に簡単に先物を構成することができます。http://www.deadcoderising.com/java8-writing-asynchronous-code-with-completablefuture/
彼らは最初の2番目の適応ListenableFutureReturnValueHandler
のおかげで、お互いに概念的に類似していると、コントローラのメソッドの結果として、交換可能に使用することができます。
しかし、2つの異なる世界から来DeferredResult
クラスとListenableFuture
インタフェースの両方:バージョン3.2で追加されorg.springframework.web.context.request.async
パッケージから
- まず。
- 第2より
org.springframework.util.concurrent
4.0以降で利用可能なパッケージ。
さらに、それらは異なるニーズに加えられました。最初のものはコントローラの結果を非同期的に提供するための基本と完全な機能を提供しますが、2つ目は、例えば、ExecutorService
フレームワーク(ListenableFutureTask
参照)のような既存のクラス/フレームワークと実装を橋渡しすることを可能にします。
だから、一番下の行は、あなたがExecutorService
様フレームワークを使用したい時にあなたがあなた自身のまたはListenableFuture
にさらに処理を実装することが十分だときDeferredResult
クラスを使用し、です。
- 1. Springを待つListenableFuture
- 2. Spring MVCとSpring Coreの違い
- 3. Spring JDBCTemplate ResultSetExtractorとSpringバッチItemReaderの違い
- 4. struts2とspring MVCの違い
- 5. Spring MVCとSpring Web Flowとの違いは?
- 6. spring - request.setAttributeとmodel.addAttributeの違いは?
- 7. ListenableFuture to scala Future
- 8. Listenablefuture対Completablefuture
- 9. KafkaTemplateブロックはListenableFutureを返しますが
- 10. Spring-Hibernate統合とSpring + JPA + Hibernateの違いは?
- 11. タイムアウトでListenableFutureをブロックする
- 12. Spring 3の@Componentと@Configurationの違い
- 13. SpringデータのfindByとfindOneByの違いJPA
- 14. SpringのDataBinderとConversionServiceの違い
- 15. Spring MVCノンブロッキングとブロッキングのパフォーマンスの違い
- 16. Spring 4 MVC(servelt 2.5)とSpring 4 MVC(Servlet 3.0)の違いの相違点
- 17. JTAとSpring @ Transactionalアノテーションの違い
- 18. Spring JSP MVCとThymeleaf MVCの違い
- 19. Spring oauth2 - 認証サービスとglobalUserDetailsの違い
- 20. spring-bootとrun-spring-bootの違いは次のとおりです。
- 21. ListenableFuture、FutureCallback、およびタイムアウト
- 22. Spring Securityのauthenticated()とcsrfの違いは何ですか?
- 23. Spring DataのMongoTemplateとMongoRepositoryの違いは何ですか?
- 24. Spring Bootの@ComponentScanと@EnableAutoConfigurationの違いは何ですか?
- 25. SpringのResponseEntityとHttpEntityの違いは何ですか?
- 26. Spring MVCのHandlerInterceptorとHandlerInceptorAdaptorの違いは何ですか?
- 27. Spring SingletonとJava Singleeleton(デザインパターン)の違いは何ですか?
- 28. Springで-Drun.profilesと-Dspring.profiles.activeの違いは何ですか?
- 29. マネージドBeanとSpring Controllerの違いは何ですか?
- 30. ZookeeperとSpring Cloud設定サーバーの違いは何ですか?