0

メソッドの引数タイプがペイロードタイプフィルターとして暗黙的に使用される複数のメソッド (またはそのようなもの)@MessageEndpointを持つ単一の Beanを定義するエレガントな方法はありますか?@ServiceActivator

アイデアは、引数の型でディスパッチすることにより、わずかに異なるさまざまなペイロード型を処理できる単一のサービス エンドポイントを持つことです。

私は、一致する引数の型を持つEventBus任意の登録済みメソッドにイベント オブジェクトをディスパッチするGoogle Guava の を認識しています。@Subscribe私は現在このアプローチを使用していますが、Spring Integrationでもこれが(ちょっと)可能かどうか疑問に思っていました。

4

1 に答える 1

0

XML では、あいまいさがなければ、ペイロード タイプに基づいてa <service-activator ... ref="foo" />( なし) がメソッドに解決されます。method

4.0以降では、使用できます...

@Bean
@ServiceActivator(...)
public MessageHandler foo() {
    ...
}

ServiceHandlingFactoryBeanセットとともに a をtargetObjectPOJO に返します (ここでも、メソッド名はありません)。

この場合、outputChannelファクトリ Bean に を設定する必要があることに注意してください (outputChannel注釈の属性は無視されます)。

于 2014-09-25T11:02:36.033 に答える