パッケージを理解しようとしていますが、アノテーションが何に使用されるのjavax.inject
かがよくわかりません。Javadoc では、その背後にある考え方は説明されていません。javax.inject.Named
Javadocはhttp://download.oracle.com/javaee/6/api/javax/inject/Named.html
使っていますスプリング 3.0いくつかのサンプル プログラムを書くには、@Named
Bean を配置すると Bean ファクトリに追加されるようですが、Javadoc の説明が非常に簡単なので、それが標準的な動作なのか、Spring 固有の動作なのかはわかりません。
私の質問は次のとおりです:
@Named
との違いは何ですか?@Qualifier
- クラスが他のクラスに注入可能であることをランタイム システムに伝えるにはどうすればよいでしょうか。そのためのアノテーションは何ですか。Spring
@Component
のそれと同等ですか。
アップデート1@Named
とについての素晴らしい説明が@Qualifier
Niceの記事にあります@Named
。@Qualifier
https://dzone.com/articles/java-ee6-cdi-named-components下のコメントにリンクしてくれた@xmedekoに感謝します。
ベストアンサー1
@Named
に使用区別する同じスコープにバインドされた同じタイプの異なるオブジェクト間。
@Named("maxWaitTime")
public long maxWaitTimeMs;
@Named("minWaitTime")
public long minWaitTimeMs;
修飾子がないと@Named
、インジェクターはどの long をどの変数にバインドすればよいかわかりません。
のように動作する注釈を作成する場合は
@Named
、@Qualifier
注釈の作成時に を使用します。を見ると
@Named
、それ自体に という注釈が付けられています@Qualifier
。