2016-03-22 62 views
1

如何使用Spring Integration DSL創建XPath Splitter?什麼是DSL相當於此:春季集成DSL - 如何創建一個XPath分配器?

<!-- Split the order into items creating a new message for each item node --> 
<int-xml:xpath-splitter id="orderItemSplitter" 
        input-channel="orderChannel" 
        output-channel="orderItemsChannel"> 
    <int-xml:xpath-expression expression="/order/items"/> 
</int-xml:xpath-splitter> 

回答

0

Spring集成的Java DSL沒有任何<xpath-splitter>具體的組成部分,因爲它是很容易的通過常規的Java配置中配置:

@Bean 
public AbstractMessageSplitter xpathSplitter() { 
    return new XPathMessageSplitter("/order/items"); 
} 

... 

@Bean 
public IntegrationFlow xpathFlow() { 
return IntegrationFlows.from("inputChannel") 
      .split(xpathSplitter()) 
      .get(); 
} 
+0

由於阿爾喬姆。這確實很容易,假設有人知道XPathMessageSplitter的存在。我發現,在工廠存在的地方,如Transformers,Pollers,MessageChannels,Amqp,Jms,Files,Ftp,Mail等,DSL就像XML一樣易於使用。但在沒有工廠可以提供幫助的地方,我往往會陷入困境,尋找正確的方式去做某件事。 –

+0

是的。我理解你的擔憂,但是我們仍不清楚爲什麼人們不會去看看Framework類。爲此,我們最近在參考手冊中添加了一些:http://docs.spring.io/spring-integration/docs/4.3.0.BUILD-SNAPSHOT/reference/html/overview.html#programming-tips。另一方面,它看起來像Splitters工廠在DSL方面也會很好。隨時就此提出GH問題,我們很快就會解決。 –

+0

「爲什麼人們不去看看框架類」 - 爲了說清楚,我們必須明白,框架用戶看到的框架完全不同於框架作者。時間是有限的,有成千上萬的類,XML是完整的文檔,易於使用,並且易於使用 - 向XML文檔添加命名空間並查看可用元素非常容易。使用JC DSL,一些部件很容易,而其他部件非常抽象。您添加到文檔將有助於一些。我會在Splitters上開一個GH,並感謝你所有的辛勤工作 - 我們對此表示感謝。 –