PicoContainer は、 JSR-330@Inject
および@Named
. (いいえ、この別の質問は役に立たないようです。PicoContainer サイトが JSR-330 のサポートが追加されたと述べているという事実に対処していないためです。)
次のようにコンテナに何かを追加します。
container.addComponent(Foo.class);
container.addComponent("myBar", new MySpecialBar());
container.addComponent("decoy", new SomeOtherBar());
@Named
コンストラクターのパラメーターを次のようにマークします。
public class Foo(@Named("myBar") Bar bar) { ...
しかし、Foo
インスタンスを取得しようとすると、PicoContainer はインスタンスが多すぎBar
て選択できないと文句を言います。
質問 1:コンストラクター インジェクションで PicoContainer を使用するにはどうすればよい@Named
ですか?
次に、内部でフィールド注入を使用しようとしますFoo.java
:
@Inject
@Named("myBar")
Bar bar;
それもうまくいきません。
質問 2: PicoContainer をコンストラクター インジェクション@Inject
と連携させるにはどうすればよいですか?@Named
それとも、PicoContainer のニュース ページが間違っていて、単に JSR-330 に対する PicoContainer 2.x のサポートがまったくないのでしょうか?