領先一步
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]