领先一步
VMware 提供培训和认证,助您加速进步。
了解更多什么是 Spring Integration Scala DSL?
Spring Integration Scala DSL 是一种用 Scala 编写的领域特定语言,其目标是
我们需要指出的一点是,Spring Integration Scala DSL 本身并不是一个新的 EIP 框架。它是一个基于 Scala 的 DSL,构建在基于 Java 的 Spring Integration 框架之上,并且在第一个里程碑中,该 DSL 本身仍然严重依赖于 Spring Integration API 中的 Java 类型。然而,随着它在后续里程碑中不断发展,该 DSL 将会变得越来越 Scala 化。我们相信,与现有 Java API 的紧密集成提供了即时的可重用性,但我们也认识到未来提供 Scala 包装器和转换器的好处。
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 参考 等。
第一个截屏视频是关于 Spring Integration Scala DSL 的简短(约 15 分钟)介绍,其中也涵盖了项目背后的思想和动机 - [Intro-SI-Scala.mov]
另一个截屏视频(约 10 分钟)是 Spring Integration Scala DSL 入门的视觉补充,其中包含关于如何开始使用 Eclipse 开发环境以及 IntelliJ IDEA 的演示。 - [Getting-Started-SI-Scala.mov]