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 サーブレット) に挿入し、mainFacade.getFooFacade() を呼び出すと、MainFacade の新しいインスタンスが fooFacade の新しいインスタンスと共に作成されます。
Weld は、どこに注入しても同じアプリケーション スコープ Bean のインスタンスを返すと考えました。私が間違っていることは何ですか?