javax.inject.Named アノテーションは何のために使用されるのでしょうか? 質問する

javax.inject.Named アノテーションは何のために使用されるのでしょうか? 質問する

パッケージを理解しようとしていますが、アノテーションが何に使用されるのjavax.injectかがよくわかりません。Javadoc では、その背後にある考え方は説明されていません。javax.inject.Named

Javadocはhttp://download.oracle.com/javaee/6/api/javax/inject/Named.html

使っていますスプリング 3.0いくつかのサンプル プログラムを書くには、@NamedBean を配置すると Bean ファクトリに追加されるようですが、Javadoc の説明が非常に簡単なので、それが標準的な動作なのか、Spring 固有の動作なのかはわかりません。

私の質問は次のとおりです:

  1. @Namedとの違いは何ですか?@Qualifier
  2. クラスが他のクラスに注入可能であることをランタイム システムに伝えるにはどうすればよいでしょうか。そのためのアノテーションは何ですか。Spring@Componentのそれと同等ですか。

アップデート1@Namedとについての素晴らしい説明が@QualifierNiceの記事にあります@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

おすすめ記事