领先一步
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 参考等。
第一个屏幕录像是一个简短的(约 15 分钟)Spring Integration Scala DSL 介绍,其中还涵盖了该项目背后的想法和动机 - [Intro-SI-Scala.mov]
另一个屏幕录像(约 10 分钟)是 如何开始使用 Spring Integration Scala DSL 的视觉补充,其中包括演示如何开始使用基于 Eclipse 的开发环境以及 IntelliJ IDEA。 - [Getting-Started-SI-Scala.mov]