Domanda

Ho letto alcuni articoli di blog su implementazione pattern Observer su JEE6 e qualcosa mi dà fastidio ... non riesco a trovare alcuna informazione atm Quindi chiedo lì ...

ho trovato i seguenti esempi:

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

E

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
    }

}

Non riesco a capire come il legame tra consumatore e produttore dell'evento evento è fatto ...

E 'per convenzione di denominazione dei metodi? (Dove le parole "a", "dopo", "prima" ... avranno senso)

E 'al confronto di argomenti dati (qui String e MyEvent)?

Non posso sapere e non vedere che cosa altro potrebbe essere ...

È stato utile?

Soluzione

Il legame tra la cottura evento e l'ascoltatore si basa sul tipo di evento.

Nel tuo esempio:

public class EventConsumer {

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

}

Questa classe riceverà tutti sparato eventi di tipo MyEvent, indipendentemente dalla loro provenienza.

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

Altri suggerimenti

Il contenitore di metadati mantiene su tutti i fagioli al suo interno. All'avvio registra tutti i metodi osservatori insieme al tipo di evento (la Class dell'argomento) si osservano. Ogni volta che un evento viene generato, l'elenco degli osservatori viene controllato per i metodi che accettano il tipo appropriato di evento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top