轉換器

DSL API 提供了方便、流暢的 Transformers 工廠,可在 .transform() EIP 方法中用作內嵌目標物件定義。以下範例示範如何使用它

@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 宣告,如果它們尚未定義為 bean 的話。

有關更多資訊和支援的 Factory 方法,請參閱 Javadoc 中的 Transformers

從 6.2 版本開始,引入了 transformWith(Consumer<TransformerEndpointSpec>) 變體,以便透過單一建構器引數設定所有轉換器及其端點選項。這種樣式使 DSL 更具可讀性,並在修改程式碼時提升開發人員體驗。這也使 Groovy 和 Kotlin DSL 更為直接。