2016-11-29 64 views
1

所以這可能是一個更普遍的問題,但我覺得它需要被問到。將Java DSL轉換爲Spring XML等價物

一次又一次我遇到了駱駝的文檔頁面上的例子,我說「這正是我想要的......但它是Java而不是Spring,我怎麼才能正確地轉換它?

所以我的問題是:什麼是經驗法則轉換的東西?

有沒有一些轉換指南呢?

例如,我想在每行的末尾追加一個\n,因爲數據通過套接字使用Netty4組件進入文件。

我看到的.transform().body(append("\n"))

這樣一個例子,我將如何解釋,隨着春天,把我的基於Spring的路線?

也許這只是一個新來駱駝的人掙扎着的東西,一旦你掌握了它,你可以看到明顯的答案。但我覺得我不可能是唯一一個在考慮那些例子的人。

似乎很多Java - > Spring的轉換可以以1比1的比例完成,但這並非全是。

+0

Spring是java ...您不需要xml就可以使用基於java的配置。 –

+1

其他開發人員希望使用基於Spring的XML配置。所以我必須通過駱駝文檔,希望找到一個與Java示例等價的XML,因爲我根本不知道我可以使用的所有潛在標籤。 – Jsmith

回答

-1

您可以通過mvn駱駝運行駱駝上下文:運行目標,然後使用JMX客戶端連接到該進程。駱駝中有一個mbean,它提供了一個名爲dumpRoutesAsXML或類似的方法。調用這個將會給你的上下文相當於xml。但請記住,它只打印路線,而路線中的所有東西都將被丟棄。

希望幫助, 拉爾斯

+0

對不起,我正在談論我在網上或駱駝文檔中看到的例子。我不是說我有這個代碼都是用Java編寫的,並且想要轉換它。我只是看着駱駝網站上的純文本文本,然後「如何將其轉換爲我的需要?」 – Jsmith

1

好,映射並不簡單,沒有提供一個1對1的映射 - 通常,一個Java DSL方法調用在大多數情況下轉換到標籤在Spring XML DSL中的位置,但該標籤的位置並不總是相同的 - 在某些情況下,Java DSL方法調用鏈轉換爲標籤被放置在同一級別,有時(例如冪等消費者)該鏈轉換爲第一個子標籤調用。

我猜測映射是這樣完成的,因爲XML和Java是兩種截然不同的語言,並且使得映射1-1會削弱至少一個(如果不是兩個)DSL的表現力。

我的建議是始終導入XML schema並依賴IDE的自動完成以及架構本身和Camel在線文檔中的文檔。

+0

謝謝!這是我正在尋找的答案類型。我只是在努力處理像'.transform()。body(append(「\ n」))''並且發現' $ {in。body} \ n'會得到相同的結果。我很難在駱駝文檔中找到能夠指出這種類型的答案(很容易)的東西!然而,現在老闆說我們應該把所有東西從Spring變成Java:劉海頭在牆上: – Jsmith

+0

是的,不幸的是,兩者之間的翻譯並不那麼直觀。如果它有任何的安慰,我認爲你最好用Java DSL,尤其是如果你使用Java 8的話 - 它更強大和更靈活。加上更容易測試:) –