轉換器
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 方法。然而,如果內聯物件尚未定義為 bean,DSL 解析器會負責 bean 宣告。
有關更多資訊和支援的工廠方法,請參閱 Javadoc 中的 Transformers。
從 6.2 版開始,引入了一個 transformWith(Consumer<TransformerEndpointSpec>) 變體,以便透過單個構建器引數配置所有轉換器及其端點選項。這種風格使 DSL 更具可讀性,並提高了開發人員修改程式碼的體驗。這也使得 Groovy 和 Kotlin DSL 更加直接。
另請參見 Lambdas 和 Message<?> 引數。