Transformers

DSL API は、.transform() EIP メソッド内でインラインターゲットオブジェクト定義として使用される便利で流れるような Transformers ファクトリを提供します。次の例は、その使用方法を示しています。

@Bean
public IntegrationFlow transformFlow() {
    return IntegrationFlow.from("input")
            .transform(Transformers.fromJson(MyPojo.class))
            .transform(Transformers.serializer())
            .get();
}

setter を使用した不便なコーディングを回避し、フロー定義をより簡単にします。Transformers を使用してターゲット Transformer インスタンスを @Bean インスタンスとして宣言し、再び IntegrationFlow 定義から Bean メソッドとして使用できることに注意してください。それでも、DSL オブジェクトがまだ Bean として定義されていない場合、DSL パーサーはインラインオブジェクトの Bean 宣言を処理します。

詳細およびサポートされるファクトリメソッドについては、Javadoc の Transformers (Javadoc) を参照してください。

バージョン 6.2 以降、transformWith(Consumer<TransformerEndpointSpec>) バリアントが導入され、すべてのトランスフォーマーとそのエンドポイントオプションが単一のビルダー引数を介して構成されます。このスタイルにより、DSL の読みやすさが向上し、コードを変更する際の開発者のエクスペリエンスが向上します。これにより、Groovy および Kotlin DSL もより簡単になります。

ラムダと Message<?> 引数も参照してください。