【发布时间】:2013-03-20 00:49:18
【问题描述】:
我正在尝试使用 Weld 来了解 CDI。得到下一个结构:
@ApplicationScoped
public class MainFacade {
@Inject
private FooFacade fooFacade;
private static int ins=0;
public MainFacade() {
super();
ins++;
System.out.println("MainFacade instance = "+ins);
}
public FooFacade getFooFacade() {
return fooFacade;
}
}
FooFacade 也是@ApplicationScope。
当应用程序启动时,我得到一个 MainFacade 实例 = 1。当我将它注入其他类(GWT RPC servlet)并调用 mainFacade.getFooFacade() 时,将创建 MainFacade 的新实例以及 fooFacade 的新实例.
认为 Weld 会在我注入它的任何地方返回相同的应用程序范围 bean 实例。我做错了什么?
【问题讨论】:
-
你如何确定它是一个新实例?可能是注入了不同的代理。
-
你不会说出你在标准输出上看到的任何东西。