11
votes

Événements-cadres de printemps

Je lisais dans la documentation du cadre de printemps et je trouvais une section sur la collecte d'événements au printemps en utilisant ApplicationContext . Après avoir lu quelques paragraphes, j'ai constaté que les événements de printemps sont soulevés de manière synchrone. Y a-t-il un moyen de soulever des événements asynchrones? Votre aide est très appréciée. Je cherche quelque chose de similaire qui m'aiderait à compléter mon module.


2 commentaires

Utilisez un SimbleasyncTaskexecutor du printemps. Reportez-vous: Baeldung.com/spring-events


J'aimerais que ce soit là depuis 2009. :)


4 Réponses :


2
votes

printemps elle-même (Afaik) fonctionne de manière synchrone, mais ce que vous pouvez faire est de créer votre propre proxy de candidatureListener - une classe qui implémente cette interface, mais au lieu de gérer l'événement qui le déléguette en envoyant à un autre (ou nouveau) fil, Envoi de message JMS, etc.


0 commentaires

3
votes

Les stratégies de notification alternatives peuvent être obtenues en implémentant ApplicationEventMulticaster (voir Javadoc ) et sa hiérarchie de classe sous-jacente (aide). En règle générale, vous utilisez soit un mécanisme de notification basé sur JMS (comme David déjà suggéré) ou de joindre au ressort Taskexecuterer abstraction (voir Javadoc ).


0 commentaires

0
votes

Essayez ceci remplacer l'applicationEventMulticaster Bean dans des ressources.Groovy de sorte qu'il utilise un piscine de thread:

Quelque chose comme ça a fonctionné pour moi, c'est-à-dire que j'ai utilisé p>

import java.util.concurrent.*
import org.springframework.context.event.*

beans = {
    applicationEventMulticaster(SimpleApplicationEventMulticaster) {
        taskExecutor = Executors.newCachedThreadPool()
    }
}


0 commentaires

5
votes

simple asynchrone applicatiflistener :

éditeur: xxx

écouteur: xxx

Vous devez sous-classe applicatifEvent avec vos événements spécifiques. Vous pouvez configurer SimpleApplicationVentMulticaster et son TASKEXecutor dans un fichier XML.

Vous voudrez peut-être implémenter ApplicationEventPublisheraware dans votre classe d'écoute et transmettez un objet source (au lieu de la chaîne vide) dans le constructeur d'événement.


0 commentaires