1

Spring Integration でフィルターを作成しています。

このフィルターでは、一連の前提条件をチェックします。前提条件が満たされていない場合は、メッセージ ペイロード (またはヘッダー) を変更して、ユーザーが実行する一連のアクションを追加して満たす必要があり、discart チャネルを介してユーザーに返します。

サービスアクティベーターを使用することもできますが、この場合はフィルターの方がわかりやすいと思います。

それを作るための最もきれいな方法は何ですか?

これは一種の疑似コードです:

@Filter
public boolean checkEventPreconditions(Message<?> messageIn)
{
    //Here I am returning the set of actions to satisfied preconditions
    List<Integer> actionsId = returnActions();

    if(actionsId.isEmpty())
    {
        return true;
    }
    else
    {
        //Here I need to add actionsId to the message
        return false;
    }

}

ありがとう!

4

1 に答える 1

3

いいえ、懸念事項を混ぜないでください。フィルターは、メッセージをさらに送信するか破棄するかを確認するだけです。メッセージの変更はトランスフォーマーの責任です。したがって、やりたいことは破棄フロー内に配置する必要があります。

于 2013-10-17T14:55:56.887 に答える