Question

J'ai lu certains articles de blog sur Observer la mise en œuvre du modèle sur JEE6 et quelque chose me dérange ... Je ne peux trouver aucune information atm je demande donc là ...

J'ai trouvé les exemples suivants:

@Stateless
[...]
public class ParisJugService {

   @Inject
   Event event;

   public void helloParis(){
        System.out.println("Hello Paris");
        event.fire("hello Paris invoked!");
   }
}

@Stateless
public class EventReceiver {

    public void onHelloParis(@Observes String message){
        System.out.println("----------- " + message);
    }
}

public class MyEvent {
    String data;
    Date eventTime;
    ....

}

public class EventProducer {

  @Inject @Any Event<MyEvent> event;


  public void doSomething() {
       MyEvent e=new MyEvent();
      e.data="This is a test event";
      e.eventTime=new Date();
      event.fire(e);

  }

}


public class EventConsumer {


    public void afterMyEvent(@Observes MyEvent event) {

        // .. Insert event logic here
    }

}

Je ne comprends pas comment le lien entre le producteur et consommateur d'événements événement est fait ...

Est-ce en nommant la convention des méthodes? (Lorsque les mots « sur », « après », « avant » ... auront le sens)

Est-ce par comparaison des arguments donnés (ici String et myEvent)?

Je ne peux pas savoir et ne vois pas quoi d'autre pourrait-il être ...

Était-ce utile?

La solution

Le lien entre la mise à feu de l'événement et l'auditeur est basé sur le type d'événement.

Dans votre exemple:

public class EventConsumer {

    public void afterMyEvent(@Observes MyEvent event) {
        // .. Insert event logic here
    }

}

Cette classe recevra tous les événements tirés de type MyEvent, d'où qu'ils viennent.

Source: http: // Télécharger -llnw.oracle.com/javaee/6/api/javax/enterprise/event/Observes.html

Autres conseils

Le conteneur conserve des métadonnées sur tous les haricots à l'intérieur. Au démarrage, il enregistre toutes les méthodes d'observation ainsi que le type d'événement (le Class de l'argument) qu'ils observent. Chaque fois qu'un événement est déclenché, la liste des observateurs est vérifié pour les méthodes qui acceptent le type d'événement approprié.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top