@Lazy
CDI 1.0 の Weld 実装を使用していますが、Spring のように (またはlazy-init
XMLを使用して) bean を遅延させる方法が見つかりません。Injector
起動時に Bean を初期化しないように CDI に指示する方法はありますか?
質問する
3977 次
3 に答える
8
私の答えを参照してください:http://www.adam-bien.com/roller/abien/entry/lazy_injection_with_javax_inject
使用する
@Inject
Instance<MyObject> object;
Bean は必要な場合にのみ初期化されます...それはあなたが望むものではありませんか?
于 2013-04-11T11:36:10.467 に答える
7
いいえ、これは CDI では不可能です。最も近い方法は、プロキシを提供する新しい InjectionPoint (拡張機能を使用) 実装を作成することであり、プロキシは最初のメソッド呼び出しですべてを初期化します。
于 2012-09-27T22:35:47.073 に答える
4
注入する Bean が通常のスコープ (@SessionScoped、@RequestScoped など) にある場合、遅延インスタンス化されます。クライアント Bean で得られるのは、プロキシでメソッドを初めて呼び出すまで具体的なインスタンスを指さないプロキシです。
他の人がすでに指摘しているよう@Inject Instance<MyBean> myBeanInstance;
に、明示的な遅延インスタンス化を確立するためにも使用できます。
于 2015-11-09T09:13:37.450 に答える