J'essaie de configurer un écouteur Spring Batch pour envoyer un message à un événement Spring Integration Gateway for StepExecution.Comment configurer StepExecutionListener avec Spring Integration DSL
Le lien suivant explique comment configurer cela avec XML
Comment cela peut-il être configuré via DSL Spring Integration? Je n'ai trouvé aucun moyen de configurer une passerelle avec une interface de service utilisant DSL.
Au moment où j'ai travaillé autour de cela en implémentant un StepExecutionListener réel, j'ai ensuite appelé une interface qui est annotée avec @MessagingGateway (appelant la méthode @Gateway correspondante) afin d'obtenir un message à un canal. Et je configure ensuite un flux DSL d'intégration pour ce canal.
Existe-t-il un moyen plus simple d'utiliser DSL, en évitant cette solution de contournement? Existe-t-il un moyen de connecter directement un écouteur Batch à une passerelle, comme on peut utiliser la config XML?
Cheers, Menno
Salut Artem, merci pour votre réponse détaillée. Est-il impossible d'ajouter un moyen de spécifier une interface de service sur GatewayEndpointSpec, de sorte que la méthode EIP .gateway() récemment ajoutée puisse être utilisée pour configurer la passerelle et l'interface de service correspondante? – Menno
Non, car '.gateway()' joue le même rôle que '' dans '' et il s'agit d'un milieu de flux. Lorsque '@ MessagingGateway' est un pont POJI entre votre code et le flux d'intégration de Spring en utilisant seulement l'appel de méthode et DI. Ne mélangez pas les préoccupations. Quoi qu'il en soit, vous avez besoin d'une invocation de méthode depuis l'écouteur de l'étape Batch. Par conséquent, toute modification de '.gateway()' ne vous aidera pas, car votre travail batch démarre exactement la méthode d'invocation de flux sur l'interface. –
Oui, je vois ce que vous voulez dire. Merci d'avoir éclairci ça. – Menno