我试图理解使用焊接的CDI。获得下一个结构:Weld @Inject ApplicationScope bean在每个注入点创建新实例
@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的相同实例。我做错了什么?
你怎么确定它是一个新的实例?这可能是它注入了不同的代理。 – rdcrng
你不会说你在标准输出中看到什么。 – akostadinov