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