2017-07-28 4 views
0

私はSpringとReactorに関するすべてのことを読んでおり、今後のSpring Framework 5にはReactorが含まれることになっていることを理解していますか?Reactorに基づくSpring MVCとは何ですか?

興味がありますSpring MVCは、現在のところフレームワークの一部ではないため、ReactorをSpring MVCでどのように使用できますか? Framework 5を待っている間にReactorをSpringで使用するオンラインの例から、リアクタバスを使用するように見えます。

MVCアプリにリアクトルバスを追加するだけで、現在の状態でSpring MVC + Reactorは動作していますか?

Githubを見ると、原子炉バスはレガシーモードにあるようです。

既存のSpring MVCにリアクティブ機能を与える現在の方法は何ですか?

答えて

2

Spring 5とWebFluxは、フレームワーク自体がリアクティブプログラミングを使用しており、DBが非同期対応の場合はエンドツーエンドの非同期性の可能性があるため、最大限の効果をもたらします(Cassandra 、Redis、MongoDB、Couchbase、そして反応的なSpring Data Kayを参照)。

つまり、Reactorのようなライブラリは、あなたのアプリが完全に反応しない場合でも利益を得ることができます。たとえば、多くのオーケストレーションが必要なサービスレイヤがある場合です。これらのサービスが非同期タイプ(理想的にはFlux/Mono/Publisher、さらにFuture)のタスクを表す場合、それらをReactorにブリッジし、強力な演算子を使用して複雑な非同期処理パイプラインを構築することができます。

最後の部分は、これらの非同期結果でSpring 4.xを動作させることです。このフレームワークは、タイプのフレームワークをサポートしています。これはFluxまたはMonoから取得できます(以下の例は単純で、上記の演算子の構成を示していません。これはサービスには表示されません):

@GetMapping() 
public DeferredResult<User> getCurrentUser() { 
    DeferredResult<User> result = new DeferredResult(); 
    Mono<User> mono = myService.getCurrentUser(); 
    mono.subscribe(
     value -> result.setResult(value), 
     error -> result.setErrorResult(error) 
    ); 
    return result; 
} 
関連する問題