JEE6如何让观察员和Observee(Observer模式)之间的联系
题
我读过关于JEE6 Observer模式实现和东西打扰我的一些博客文章...我无法找到ATM的任何信息,所以我问那里......
我发现以下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);
}
}
和
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
}
}
我不明白怎么事件消费者和事件生产者之间的联系后...
通过命名的方法的公约是吗? (其中,“前” ...“上”,“后”,该词语将有义)
通过给定的参数(在此字符串和MyEvent)相比是吗?
我不知道,看不到还有什么可以说,它是...
解决方案
事件击发和收听者之间的链路是基于所述事件类型。
在您的示例:
public class EventConsumer {
public void afterMyEvent(@Observes MyEvent event) {
// .. Insert event logic here
}
}
这个类将接收所有的燃烧型MyEvent的事件,无论他们来自何方。
来源: HTTP://下载-llnw.oracle.com/javaee/6/api/javax/enterprise/event/Observes.html
其他提示
在容器保持的元数据有关它里面的所有豆。在启动时将其与事件类型(自变量的Class
)他们观察注册所有观察者方法在一起。每当一个事件被触发,观察者的列表中检查该接受适当的类型的事件的方法。
不隶属于 StackOverflow