Introducing Spring Integration Scala DSL

工程 | Oleg Zhurakousky | 2012 年 3 月 5 日 | ...

介绍

Spring Integration 团队很高兴地宣布 Spring Integration Scala DSL 的第一个里程碑版本 (1.0.0.M1) 发布,它是 Spring Integration 产品组合的最新成员之一。
什么是 Spring Integration Scala DSL?

Spring Integration Scala DSL 是一种用 Scala 编写的领域特定语言,其目标是

    • 为 Spring Integration 提供强类型替代 XML 配置
    • 提高 Scala 社区对 Spring Integration 的认识
    • 提供与各种 Scala 框架和产品(例如 Akka)的一流集成
    • 提供与 Java 的无缝集成,使 Scala 开发人员仍然可以利用他们现有的 Java 投资

我们需要指出的一点是,Spring Integration Scala DSL 本身并不是一个新的 EIP 框架。它是一个基于 Scala 的 DSL,构建在基于 Java 的 Spring Integration 框架之上,并且在第一个里程碑中,该 DSL 本身仍然严重依赖于 Spring Integration API 中的 Java 类型。然而,随着它在后续里程碑中不断发展,该 DSL 将会变得越来越 Scala 化。我们相信,与现有 Java API 的紧密集成提供了即时的可重用性,但我们也认识到未来提供 Scala 包装器和转换器的好处。

演示一下

这里快速浏览一下 DSL 本身
val messageFlow =
     filter{payload: String => payload == "World"} -->
     transform{ payload: String => "Hello " + payload} -->
     handle{ payload: String => println(payload) }
    
messageFlow.send("World")

……仅此而已!

将其与 Java/XML 等价物进行比较

XML 配置 (config.xml)

<int:gateway service-interface="foo.bar.MyGateway"
                     default-request-channel="inChannel"/>

<int:filter input-channel="inChannel" 
                expression="payload.equals('World')" 
	        output-channel="transformingChannel"/>
	            
<int:transformer input-channel="transformingChannel" 
                           expression="'Hello ' + payload"
                           output-channel="loggingChannel"/>
                     
<int:service-activator input-channel="loggingChannel" 
              expression="T(java.lang.System).out.println(payload)"/>

Java

public class SpringIntegrationIntro {

    public static void main(String... strings ){
       ApplicationContext context = 
         new ClassPathXmlApplicationContext("config.xml");
       MyGateway gateway = context.getBean(MyGateway.class);
       gateway.send("World");
    }
	
     public static interface MyGateway {
       public void send(String value);
     }
}

您应该注意到的第一件可能也是显而易见的事情是,使用 Scala DSL 连接这样的东西要快得多。但这并非唯一的好处。强类型和利用 Scala 等函数式语言的其他特性(例如,使用 Scala 函数作为消息处理器)的能力只是其中的几个。您可以从项目的 GitHub 网站获取更多信息和详细信息,其中包含全面的 介绍,以及 如何开始DSL 参考 等。

截屏视频

为了帮助您,我们还发布了 2 个截屏视频。

第一个截屏视频是关于 Spring Integration Scala DSL 的简短(约 15 分钟)介绍,其中也涵盖了项目背后的思想和动机 - [Intro-SI-Scala.mov]

另一个截屏视频(约 10 分钟)是 Spring Integration Scala DSL 入门的视觉补充,其中包含关于如何开始使用 Eclipse 开发环境以及 IntelliJ IDEA 的演示。 - [Getting-Started-SI-Scala.mov]

路线图

初始项目路线图可在此处获取 这里

反馈

请使用 Spring Integration 论坛Spring Integration Scala DSL JIRA 告诉我们您的想法,或者在此处发表您的评论。

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

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

了解更多

获得支持

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

了解更多

即将举行的活动

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

查看所有