閉じる

Spring Web Flow

2.5.1.RELEASE

Spring Web Flow は Spring MVC 上に構築され、Web アプリケーションの「フロー」の実装を可能にします。フローは、ユーザーが何らかのビジネスタスクの実行をガイドする一連のステップをカプセル化します。複数の HTTP リクエストにまたがり、状態を持ち、トランザクションデータを処理し、再利用可能であり、本質的に動的で長時間実行される場合があります。

Spring Web Flow のスイートスポットは、フライトのチェックイン、ローンの申請、ショッピングカートのチェックアウト、フォームへの確認ステップの追加など、ナビゲーションが制御されたステートフル Web アプリケーションです。これらのシナリオに共通するのは、次の特徴の 1 つ以上です。

  • 明確な開始点と終了点があります。

  • ユーザーは、特定の順序で一連の画面を表示する必要があります。

  • 変更は最後のステップまで確定されません。

  • 完了したら、誤って取引を繰り返すことはできません

Spring Web Flow は、高レベルの抽象化でフローを作成するための宣言型フロー定義言語を提供します。これにより、Spring MVC、JSF、さらにはポートレット Web アプリケーションなどの変更なしで(フロープログラミングモデルに)幅広いアプリケーションに統合できます。以下は、ナビゲーション要件を伴うステートフル Web アプリケーションで見られる一般的な課題です。

  • フローを視覚化することは非常に困難です。

  • アプリケーションには、HTTP セッションにアクセスする多くのコードがあります。

  • 制御されたナビゲーションを強制することは重要ですが、不可能です。

  • 適切なブラウザの戻るボタンのサポートは達成できないようです。

  • 「戻る」ボタンを使用すると、ブラウザとサーバーが同期しなくなります。

  • 複数のブラウザタブにより、HTTP セッションデータの同時実行性の問題が発生します。

  • Spring Web Flow は、上記の課題の解決策を提供します。

Spring Boot 構成

Spring Web Flow を使用するには、アプリケーションに次の依存関係を追加します。

Maven
<dependencies>
    <dependency>
        <groupId>org.springframework.webflow</groupId>
        <artifactId>spring-webflow</artifactId>
        <version>2.5.1.RELEASE</version>
    </dependency>
</dependencies>
Gradle
dependencies {
    compile 'org.springframework.webflow:spring-webflow:2.5.1.RELEASE'
}
Spring Initializr

プロジェクトのクイックスタート

Spring Initializr (英語) を使用してアプリケーションをブートストラップします。

ドキュメント

Spring プロジェクト別に用意されています。プロジェクトの機能を使用する方法と、それを使用して達成できることを詳細に説明しています。
2.5.1.RELEASE CURRENT GA リファレンスドキュメント (英語) API ドキュメント (英語)
2.4.5.RELEASE GA リファレンスドキュメント (英語) API ドキュメント (英語)

例を試してみる: