Bonjour,
Suite à mon précédent sujet, j'ai migré en Spring 4.2.2. Cela me permet d'avoir une gestion des évènements par Spring et d'utiliser @EventListener.

Je n'arrive cependant pas à faire marcher les events par cette méthode.

J'ai une méthode qui publie un event dans le ApplicationEventPublisher (dont l'implémentation injectée est XmlWebApplicationContext):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
MyEvent event = new MyEvent("test");
publisher.publishEvent(event);
Dans une classe de service, j'ai une méthode annotée avec @EventListener:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
@Service
public class MyServiceImpl implements IMyService {
 
    // implémentation des méthodes de l'interface
    @Override
    public MyResponse myMethod(MyRequest request) {
        ...
   }
 
    // Cette méthode n'est pas déclarée dans l'interface.
    @EventListener
    public void onMyEvent(MyEvent event) {
        ...
    }
}
L'event est publié mais il n'y a pas d'appel à ma méthode onMyEvent(). Y a t-il une configuration à faire? Dois-je obligatoirement déclarer la méthode onMyEvent() dans l'interface étant donné que Spring fonctionne avec des proxys?

Pouvez-vous m'aider svp?