溶接中@Inject(JSR-299 RI)と依存性注入。対応する@Producesはどのように発見されましたか?

StackOverflow https://stackoverflow.com/questions/2574304

質問

私は、スタンドアローンのアプリケーションでそれを使用する目的でJSR-299のリファレンス実装「ウェルド」で演じてきた、と私はドキュメントを見ていたし、魔法に驚嘆しました。

私の質問は、の方法のInject'ed @なるように指定されたオブジェクトのプロデューサーは、

?発見されました

どちらのJavaコンパイラを簡単にクラスローダによって発見された、または完全なクラスパスは、私には非常に非効率的に聞こえる、それらが何を見るために、すべてのクラスをロード横断しなければならない、またはそれは全く異なるアプローチである注釈のためのヒントを生成します。

トリックは何ですか?

役に立ちましたか?

解決

はクラスパスは、「ビーンアーカイブ」についてスキャンされます。豆アーカイブはMETA-INF/beans.xmlを含むそれらのライブラリです。これらのアーカイブのすべてのBeanが自動的にBeanManagerに登録されており、その注釈が解析され、保存されています。プロデューサーが必要とされるたびに、Beanマネージャが適格生産について相談された。

他のヒント

私はそれはSeamでと同じように動作することを前提としています。クラスパスは確かに走査されます。あなたはユーザーと匿名ユーザーのためのアプリケーションレベルでの別に記録されます。

のセッション・レベルでのインスタンスごとに1つの農産物を持つことができるようにIMPLも、最小のマッチング範囲で@produceを検索します

知らん、これ@Injectが部分的にHibernateの父親によって行わが最終的に再加工/ SpringSourceのとGoogleが最後に影響を受けました。多分それは少しGuiceの?

のように動作します
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top