Pregunta

He leído algunos artículos de blog sobre Observador aplicación patrón en JEE6 y algo me molesta ... No puedo encontrar ninguna información atm por lo que pido no ...

he encontrado los siguientes exemples:

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

y

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
    }

}

No se puede entender cómo se hace el enlace entre el consumidor y el productor de eventos de eventos ...

Es por convención de nomenclatura de los métodos? (Donde las palabras "sobre", "después de", "antes" ... tendrán sentido)

¿Es por comparación de argumentos dados aquí (String y MyEvent)?

No puedo conocer y no veo qué otra cosa podría ser ...

¿Fue útil?

Solución

El enlace entre el disparo del evento y el oyente se basa en el tipo de evento.

En el ejemplo:

public class EventConsumer {

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

}

Esta clase recibirá todo tipo de eventos disparó MyEvent, vengan de donde vengan.

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

Otros consejos

El envase mantiene los metadatos de todos los granos en su interior. En el inicio se registra todos los métodos de observador junto con el tipo de evento (el Class del argumento) que observan. Cada vez que se dispara un evento, la lista de observadores está marcada por métodos que aceptan el tipo apropiado de evento.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top