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 個螢幕錄影。

第一個螢幕錄影是一個簡短的(約 15 分鐘)Spring Integration Scala DSL 介紹,其中還涵蓋了該專案背後的想法和動機 - [Intro-SI-Scala.mov]

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

路線圖

初始專案路線圖可在此處找到:here

反饋

請使用 Spring Integration 論壇Spring Integration Scala DSL JIRA 告知我們您的想法,或在此處釋出您的評論。

獲取 Spring 新聞簡報

透過 Spring 新聞簡報保持聯絡

訂閱

領先一步

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

瞭解更多

獲取支援

Tanzu Spring 在一個簡單的訂閱中提供對 OpenJDK™、Spring 和 Apache Tomcat® 的支援和二進位制檔案。

瞭解更多

即將舉行的活動

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

檢視全部