转换器
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 更加简单直观。
另请参阅 Lambda 和 Message<?>
参数。