【发布时间】:2015-01-25 09:47:30
【问题描述】:
我在 Java SE 应用程序中使用 CDI(焊接)。我做了一个 Bean,我们就叫它 BeanA。
public class BeanA {
@PostConstruct
public void init() {
System.out.println("INIT");
}
public void receive(@Observes String test) {
System.out.println("received: " + test);
}
}
在我调用的测试方法中:
Weld weld = new Weld();
WeldContainer container = weld.initialize();
Instance<BeanA> instance = container.instance().select(BeanA.class);
BeanA bean = instance.get();
container.event().fire("TEST");
container.event().fire("TEST");
container.event().fire("TEST");
container.event().fire("TEST");
为什么输出是这样的?为什么每次收到事件时都会调用 @PostConstruct?:
初始化
初始化
收到:测试
初始化
收到:测试
初始化
收到:测试
初始化
收到:测试
【问题讨论】: