2016-04-21 4 views
1

Ich bin Spring Batch-Integration, ich muss den Job-Parameter dynamisch übergeben. Unten ist meine Service-Aktivator-Klasse, die meine Nachricht in JobLaunchRequest konvertiert.Job-Launching-Gateway dynamische Job-Parameter

Hinweis: Es wurde kein Kanalname angegeben, da er innerhalb der Kette liegt.

Wie kann ich die Jobreferenz entweder aus der Nutzlast oder aus der Kopfzeile usw. dynamisch übergeben? Bitte geeignete Lösung vorschlagen.

Ich habe einen Plan, Router zu verwenden, um den Job zu bestimmen und den entsprechenden Dienstaktivierungskanal zu verwenden. Gibt es einen besseren Ansatz?

Antwort

1
<int:header-enricher ... > 
    <int:header name="jobRef" expression="@someJob" /> 
</int:header-enricher> 

Mit Runtime SpEL-Ausdrücke in Spring-Integration referenziert @ eine Bean im Anwendungskontext.

+0

Mit dem obigen Beispiel versucht und es funktioniert wie ein Charme! Noch eine kurze Frage: @someJob - kann das dynamisch sein. Kurz gesagt, wird einigeJob-Bean später durch die dynamische Eingabe identifiziert. –

+0

Bitte ignorieren Sie den obigen Kommentar, ich habe die JobId aus dem Anwendungskontext übernommen und übergeben .. Vielen Dank für Ihre schnelle Antwort. –