轉換器
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 更為直接。
另請參閱 Lambdas 和 Message<?>
引數。