2016-03-22 5 views
1

Wie erstellen Sie einen XPath Splitter mit Spring Integration DSL? Was die DSL-Äquivalent ist dies:Spring Integration DSL - Wie erstelle ich einen XPath Splitter?

<!-- 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> 

Antwort

0

The Spring Integration Java DSL hat keine <xpath-splitter> spezifische Komponente, weil es leicht genug, um zu konfigurieren, über reguläre Java-Konfiguration ist:

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

... 

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

Dank Artem. Das ist in der Tat einfach genug, wenn man sich der Existenz des XPathMessageSplitter bewusst ist. Was ich finde ist, dass wo Fabriken existieren, wie Transformers, Poller, MessageChannels, Amqp, Jms, Files, FTP, Mail, usw., die DSL ist so einfach zu bedienen wie das XML. Aber wo keine Fabriken zur Verfügung stehen, um zu helfen, tendiere ich dazu, auf der Suche nach dem richtigen Weg zu bleiben, etwas zu tun. –

+0

Ja. Ich verstehe Ihre Bedenken, aber das ist uns immer noch nicht klar, warum die Leute sich nicht mit den Framework-Klassen beschäftigen. Zu diesem Zweck haben wir kürzlich einige nicht im Referenzhandbuch hinzugefügt: http://docs.spring.io/spring-integration/docs/4.3.0.BUILD-SNAPSHOT/reference/html/overview.html#programming-tips. Auf der anderen Seite sieht es so aus, als ob etwas wie die Fabrik von Splitters in DSL gut wäre. Fühlen Sie sich frei, ein GH-Problem in dieser Angelegenheit anzusprechen, und wir werden uns bald damit befassen. –

+0

"Warum die Leute nicht in Framework-Klassen schauen" - Um es klar zu machen, muss man verstehen, dass Framework-Benutzer das Framework komplett anders sehen als Framework-Autoren. Die Zeit ist begrenzt, es gibt Tausende von Klassen, der XML-Code ist vollständig dokumentiert und leicht zu befolgen und wurde so erstellt, dass er einfach zu konsumieren ist. Es ist so einfach, einem XML-Dokument einen Namespace hinzuzufügen und die verfügbaren Elemente zu sehen. Mit dem JC DSL sind einige Teile einfach und andere sind sehr abstrakt. Ihr Zusatz zum Dokument wird einigen helfen. Ich werde einen GH auf Splitters eröffnen, und danke für all deine harte Arbeit - es ist geschätzt. –

Verwandte Themen