クラス SessionBindingConversationManager

java.lang.ObjectSE
org.springframework.webflow.conversation.impl.SessionBindingConversationManager
実装済みのインターフェース一覧:
ConversationManager

public class SessionBindingConversationManager extends ObjectSE implements ConversationManager
セッション属性マップに会話を保存する会話マネージャーのシンプルな実装。

maxConversations プロパティを使用すると、1 つのセッションで許可される同時アクティブな会話の数を制限できます。最大値を超えると、会話マネージャーは最も古い会話を自動的に終了します。デフォルトは 5 で、ほとんどの状況ではこれで十分です。制限しない場合は -1 に設定します。maxConversations を 1 に設定すると、セッションごとにアクティブな会話が 1 つだけである状況で、リソースのクリーンアップが容易になります。

作成者:
Erwin Vervaet
  • コンストラクターの詳細

    • SessionBindingConversationManager

      public SessionBindingConversationManager()
  • メソッドの詳細

    • getSessionKey

      public StringSE getSessionKey()
      この会話マネージャーがセッションに会話データを保存するために使用するキーを返します。
      戻り値:
      セッションキー
    • setSessionKey

      public void setSessionKey(StringSE sessionKey)
      この会話マネージャーがセッションに会話データを保存するために使用するキーを設定します。独立したフローエグゼキューターをバックアップするために同じ Web アプリケーションで複数のセッションバインディング会話マネージャーが使用されている場合、この値はそれらの間で一意である必要があります。
      パラメーター:
      sessionKey - セッションキー
    • getMaxConversations

      public int getMaxConversations()
      許可される同時会話の最大数を返します。デフォルトは 5 です。
    • setMaxConversations

      public void setMaxConversations(int maxConversations)
      許可される同時会話の最大数を設定します。制限なしの場合は -1 に設定します。デフォルトは 5 です。
    • getLockTimeoutSeconds

      public int getLockTimeoutSeconds()
      会話ロックを取得しようとしたときにタイムアウトが発生するまでの経過時間を返します。デフォルトは 30 秒です。
    • setLockTimeoutSeconds

      public void setLockTimeoutSeconds(int lockTimeoutSeconds)
      会話ロックを取得しようとしたときにタイムアウトが発生するまでの経過時間を設定します。デフォルトは 30 秒です。
      パラメーター:
      lockTimeoutSeconds - タイムアウト期間(秒)
    • beginConversation

      public Conversation beginConversation(ConversationParameters conversationParameters) throws ConversationException
      インターフェースからコピーされた説明: ConversationManager
      新しい会話を始めます。
      次で指定:
      インターフェース ConversationManagerbeginConversation 
      パラメーター:
      conversationParameters - 記述的な会話パラメーター
      戻り値:
      会話コンテキストへのアクセスを可能にするサービスインターフェース
      例外:
      ConversationException - 例外が発生しました
    • getConversation

      public Conversation getConversation(ConversationId id) throws ConversationException
      インターフェースからコピーされた説明: ConversationManager
      指定された ID を持つ会話を取得します。

      実装者は、会話 ID を正しく管理するように注意する必要があります。単一の実行スレッドで特定の会話 ID を使用してこのメソッドが呼び出されるたびに、同じ (==) 会話オブジェクトを返すことは厳密には要求されませんが、呼び出し元は、識別された会話を操作できるオブジェクトを受け取ることを期待します。つまり、以下は有効な ConversationManager クライアントコードです。

              ConversationManager manager = ...;
              ConversationId id = ...;
              Conversation conv = manager.getConversation(id);
        conv.lock();
        try {
              Conversation localReference = manager.getConversation(id);
              // no need to lock since conversation 'id' is already locked
              // even though possibly conv != localReference
              localReference.putAttribute("foo", "bar");
              Object foo = conv.getAttribute("foo");
              }
              finally {
                      conv.unlock();
              }
       
      次で指定:
      インターフェース ConversationManagergetConversation 
      パラメーター:
      id - 会話 ID
      戻り値:
      会話
      例外:
      NoSuchConversationException - 提供された ID は無効です
      ConversationException
    • parseConversationId

      public ConversationId parseConversationId(StringSE encodedId) throws ConversationException
      インターフェースからコピーされた説明: ConversationManager
      文字列エンコードされた conversationId をオブジェクト形式に解析します。基本的には、ConversationId.toString() の逆です。
      次で指定:
      インターフェース ConversationManagerparseConversationId 
      パラメーター:
      encodedId - エンコードされた ID
      戻り値:
      解析された会話 ID
      例外:
      ConversationException - ID の解析中に例外が発生しました
    • createConversationContainer

      protected ConversationContainer createConversationContainer()
    • getConversationContainer

      protected final ConversationContainer getConversationContainer()
      セッションから会話コンテナーを取得します。既存のコンテナーが見つからない場合は、新しい空のコンテナーを作成し、セッションに追加します。