ホームページ >Java >&#&ベース >@autowired と @resource の違いは何ですか?

@autowired と @resource の違いは何ですか?

青灯夜游
青灯夜游オリジナル
2020-11-17 14:21:393661ブラウズ

違い: 1. @Autowired は Spring によって提供され、@Resource は J2EE によって提供され、JDK1.6 以降が必要です; 2. @Autowired は byType に従ってのみ挿入され、@Resource は byName によって自動的に挿入されますデフォルトで、byType に応じた Inject も提供されます。

@autowired と @resource の違いは何ですか?

関連する推奨事項: 「Java ビデオ チュートリアル

は Spring 3.X @ でよく使用されます。アセンブリ用の Autowired と @Resource。

これら 2 つの注釈の違いは何だろうかと思わずにはいられません。 ? ?

類似点:

@Resource は @Autowired と同等であり、フィールドまたは属性の setter メソッドでマークできます。

相違点:

(1) プロバイダー: @Autowired は org.springframework.beans.factory.annotation.Autowired によって提供されます。つまり、Spring によって提供されます。提供; @Resource は、J2EE によって提供され、JDK1.6 以降を必要とする javax.annotation.Resource によって提供されます。

(2) 注入方法: @Autowired は byType に従ってのみ注入します。@Resource はデフォルトで byName によって自動的に注入し、byType に従って注入も提供します。

(3) 属性: @Autowired依存関係をタイプ Object でアセンブルします。デフォルトでは、依存オブジェクトが存在する必要があります。null 値が許可される場合は、その required 属性を false に設定できます。名前でアセンブリを使用したい場合は、 @Qualifier アノテーションと組み合わせて使用​​できます。 @Resource には、name と type という 2 つの重要な属性があります。 name 属性は byName を指定します。name 属性が指定されていない場合、フィールドにアノテーションが付けられている場合、デフォルトでフィールドの名前が Bean 名として使用され、依存オブジェクトを検索します。アノテーションが setter にアノテーションされている場合は、フィールドの名前が Bean 名として使用されます。属性のメソッドでは、デフォルトで属性名が Bean 名として使用されます。 @Resource が name 属性を指定せず、依存オブジェクトがデフォルト名に従って見つからない場合、@Resource アノテーションは型によるアセンブリにフォールバックすることに注意してください。ただし、name 属性を指定すると、名前によってのみアセンブルできます。

@Resource Assembly Sequence

1. 名前と型を同時に指定すると、アセンブリの Spring コンテキストから一致する Bean のみが検索されます。見つからない場合はスローされます。 Exception

2. name が指定されている場合、アセンブリのコンテキストから名前 (id) に一致する Bean が検索されます。Bean が見つからない場合は、例外が発生します。 be throw

3. タイプが指定されている場合、アセンブリのコンテキストからタイプが一致する唯一の Bean を検索します。Bean が見つからない場合、または複数の Bean が見つかった場合は、例外がスローされます

4. 名前も型も指定されていない場合は、byName メソッドが自動的に使用されます。アセンブリ; 一致しない場合はプリミティブ型にフォールバックして一致し、一致する場合は自動的にアセンブルされます。

# @Resource アノテーションをフィールドに使用すると、setter メソッドを記述する必要がなくなり、このアノテーションは J2EE に属するため、Spring との結合が軽減され、コードがよりエレガントになります。

プログラミング関連の知識について詳しくは、

プログラミング学習 Web サイト をご覧ください。 !

以上が@autowired と @resource の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。