Introducing Spring Integration Scala DSL

工程 | Oleg Zhurakousky | 2012 年 3 月 5 日 | ...

介紹

Spring Integration 團隊很高興地宣佈 Spring Integration Scala DSL 的第一個里程碑版本 (1.0.0.M1) 釋出,它是 Spring Integration 產品組合的最新成員之一。
什麼是 Spring Integration Scala DSL?

Spring Integration Scala DSL 是一種用 Scala 編寫的領域特定語言,其目標是

    • 為 Spring Integration 提供強型別替代 XML 配置
    • 提高 Scala 社群對 Spring Integration 的認識
    • 提供與各種 Scala 框架和產品(例如 Akka)的一流整合
    • 提供與 Java 的無縫整合,使 Scala 開發人員仍然可以利用他們現有的 Java 投資

我們需要指出的一點是,Spring Integration Scala DSL 本身並不是一個新的 EIP 框架。它是一個基於 Scala 的 DSL,構建在基於 Java 的 Spring Integration 框架之上,並且在第一個里程碑中,該 DSL 本身仍然嚴重依賴於 Spring Integration API 中的 Java 型別。然而,隨著它在後續里程碑中不斷發展,該 DSL 將會變得越來越 Scala 化。我們相信,與現有 Java API 的緊密整合提供了即時的可重用性,但我們也認識到未來提供 Scala 包裝器和轉換器的好處。

演示一下

這裡快速瀏覽一下 DSL 本身
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 參考 等。

截圖影片

為了幫助您,我們還發布了 2 個截圖影片。

第一個截圖影片是關於 Spring Integration Scala DSL 的簡短(約 15 分鐘)介紹,其中也涵蓋了專案背後的思想和動機 - [Intro-SI-Scala.mov]

另一個截圖影片(約 10 分鐘)是 Spring Integration Scala DSL 入門的視覺補充,其中包含關於如何開始使用 Eclipse 開發環境以及 IntelliJ IDEA 的演示。 - [Getting-Started-SI-Scala.mov]

路線圖

初始專案路線圖可在此處獲取 這裡

反饋

請使用 Spring Integration 論壇Spring Integration Scala DSL JIRA 告訴我們您的想法,或者在此處發表您的評論。

獲取 Spring 新聞通訊

透過 Spring 新聞通訊保持聯絡

訂閱

領先一步

VMware 提供培訓和認證,助您加速進步。

瞭解更多

獲得支援

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案,只需一份簡單的訂閱。

瞭解更多

即將舉行的活動

檢視 Spring 社群所有即將舉行的活動。

檢視所有