領先一步
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-esque。 我們確實相信與現有 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]