Frage

habe ich auf JEE6 und etwas stört mich ein paar Blog-Artikel über Observer Muster Implementierung lesen ... ich keine Informationen atm finden, so dass ich dort fragen ...

Ich habe folgende exemples gefunden:

@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);
    }
}

Und

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
    }

}

Ich kann nicht verstehen, wie die Verbindung zwischen Ereignisverbrauchern und Event-Produzenten erfolgt ...

Ist es vereinbarungsgemäß die Methoden zu benennen? (Wo die Worte „auf“, „nach“, „vor“ ... werden Sinn haben)

Ist es durch Vergleich der angegebenen Argumente (hier String und MyEvent)?

Ich kann nicht wissen und nicht sehen, was es sonst ...

sein könnte
War es hilfreich?

Lösung

Die Verbindung zwischen dem Ereignisse Brennen und dem Hörer basiert auf dem Ereignistyp.

In Ihrem Beispiel:

public class EventConsumer {

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

}

Diese Klasse werden alle erhalten gefeuert Ereignisse vom Typ MyEvent, egal woher sie kommen.

Quelle: http: // Download -llnw.oracle.com/javaee/6/api/javax/enterprise/event/Observes.html

Andere Tipps

Der Behälter hält Metadaten über alle im Inneren Bohnen. Beim Start registriert sie alle Beobachter Methoden zusammen mit dem Ereignistyp (die Class des Arguments) sie beobachten. Jedes Mal, wenn ein Ereignis ausgelöst wird, wird die Liste der Beobachter für Methoden überprüft, die die geeignete Art der Veranstaltung übernehmen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top