转换器
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)。
请参阅 Javadoc 中的Transformer以获取更多信息和受支持的工厂方法。
从 6.2 版本开始,引入了一个 transformWith(Consumer<TransformerEndpointSpec>) 变体,允许通过单个构建器参数配置所有转换器及其端点选项。
这种风格提高了 DSL 的可读性,并增强了开发者在修改代码时的体验。
这也使得 Groovy 和 Kotlin DSL 更加直观简洁。