领先一步
VMware 提供培训和认证,以加速您的进步。
了解更多Spring Integration 开发团队欣然宣布发布 **用于 Spring Integration 的 Java DSL 扩展的第一个里程碑版本!**
Java DSL 的总体目的是为基于 EIP 的 *消息流* 提供流畅且便捷的 API,并避免冗余的 Spring Integration 配置。
org.springframework.integration:spring-integration-java-dsl:1.0.0.M1
构件可从 Spring IO 里程碑仓库 获取。
您可以在 参考手册 和 源代码 中找到更多信息,但让我们重点介绍主要功能。
概念
Spring Integration Java DSL 与现有的 Scala 和 Groovy DSL 不同;它也不同于 Apache Camel Java DSL,尽管它确实实现了 *方法链* 原则。
我们的主要目标是重用 Spring Framework JavaConfig (@Configuration
类) 和 Spring Integration Core 组件的现有实践。为了实现 *方法链* 原则,我们提供了一组 *构建器* 及其 *工厂*。此外,Java 8 的 *Lambda 表达式* 也为简洁的语法提供了一些额外的帮助。
基础知识
核心类是 IntegrationFlows
- IntegrationFlowBuilder
工厂,- 应从 @Bean
定义方法中使用,以使用 *方法链* 和 *Lambda 表达式* 作为参数来填充 IntegrationFlow
bean。IntegrationFlowBuilder
提供了许多重载方法来配置集成端点。我们称之为 **EIP 方法**。规范示例
@Bean
public IntegrationFlow helloWorldFlow() {
return IntegrationFlows.from("helloWorldInput")
.filter("World"::equals)
.transform("Hello "::concat)
.handle(System.out::println)
.get();
}
使用 Spring Integration 术语,上述示例的描述为:
Message
发送到 "helloWorldInput" 通道;filter
仅在 payload
为字符串 "World" 时才接受它;transformer
在 payload
前缀添加 Hello
;handler
将结果打印到 STDOUT;payload
不是 "World",我们将在控制台中看不到任何内容 - Message
被filter
.
丢弃。Spring Integration Java DSL 可以按原样用于现有应用程序,并且可以与现有的消息注解配置或 Spring Integration XML 配置连接,当然也可以在 Spring Boot 应用程序中使用。
请参阅上面提到的参考手册以获取更多信息。
总结
这仅仅是个开始,我们正在努力寻找一种合适的解决方案,以使用类似的流畅 API 和 Lambda 表达式来配置特定于协议的适配器。请随时分享您的想法和反馈:Spring 论坛、StackOverflow (spring-integration
标签)、Spring JIRA。
网络研讨会:Spring Integration 4.0
不要错过与 Gary Russell 一起演示 Spring Integration 4.0 新功能的 网络研讨会!
SpringOne 2GX 2014 即将到来
尽快预订您在德克萨斯州达拉斯举行的 SpringOne (9月8日至11日) 的座位。这是直接了解所有最新动态并提供直接反馈的最佳机会。今年预计会有许多重要的全新公告。我们预计将会有几个深入的 Spring Integration 会议。