Spring Integration Java DSL 里程碑版本 1 发布

发布 | Artem Bilan | 2014年5月8日 | ...

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 与现有的 ScalaGroovy 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" 时才接受它;
  • transformerpayload 前缀添加 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 会议。

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,以加速您的进步。

了解更多

获取支持

Tanzu Spring在一个简单的订阅中提供对OpenJDK™、Spring和Apache Tomcat®的支持和二进制文件。

了解更多

即将举行的活动

查看 Spring 社区中所有即将举行的活动。

查看全部