検索
ホームページJava&#&ベース@autowired アノテーションと @resource アノテーションの違いは何ですか?

違い: 1. @Autowired アノテーションは Spring によって提供され、byType に従ってのみ挿入されますが、@resource アノテーションは J2EE によって提供され、デフォルトで byName に従って自動的に挿入されます。 2. @Autowired はデフォルトでタイプによってアセンブルされ、@Resource はデフォルトで名前によってアセンブルされます。

@autowired アノテーションと @resource アノテーションの違いは何ですか?

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

Spring は独自の @Autowired アノテーションをサポートするだけではありませんは、JSR-250 仕様で定義されたいくつかのアノテーションもサポートしています。例: @Resource、@PostConstruct、@PreDestroy

1、@Autowired

は Spring によって提供され、byType

に従ってのみ注入されます。 2 , @Resource

は J2EE によって提供され、デフォルトで byName によって自動的に挿入されます。

@Resource には 2 つの重要な属性があります: name と type

Spring は @Resource にアノテーションを付けます。 name 属性は Bean の名前に解決され、type 属性は Bean のタイプに解決されます。したがって、name 属性を使用する場合は byName 自動挿入戦略が使用され、type 属性を使用する場合は byType 自動挿入戦略が使用されます。 name 属性も type 属性も指定されていない場合は、リフレクション メカニズムを通じて byName 自動挿入戦略が使用されます。

@リソースアセンブリシーケンス:

(1) 名前と型を同時に指定した場合、アセンブリの Spring コンテキストから一致する Bean のみが検索されます。

(2) name を指定すると、Spring コンテキストからアセンブリの名前 (id) に一致する Bean が検索され、Bean が見つからない場合は例外がスローされます

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

(4) 名前も型も指定しない場合は、自動的に byName メソッドが使用され、アセンブルが行われます。一致するものがない場合は、プリミティブ型にフォールバックして一致し、一致するものがある場合はオートワイヤします。

@Resource の機能は、@Autowired が byType に従って自動的に挿入されることを除いて、@Autowired と同等です。

3. 使用方法の違い

(1) @Autowired と @Resource の両方を Bean のアセンブルに使用でき、どちらも フィールドに記述できます。 または setterメソッド

(2)@Autowiredはデフォルトでタイプごとにアセンブルされます。デフォルトでは、依存オブジェクトが存在する必要があります。 null 値を許可する には、その required 属性 false に設定できます。名前アセンブリ を使用したい場合は、 @Qualifier アノテーション と組み合わせて使用​​できます。

(3)

@Resource, はデフォルトで名前 に従ってアセンブルされます。名前は name 属性 を通じて指定できます。 name 属性が指定されていない場合、 フィールド にアノテーションが記述されている場合、名前検索では デフォルトでフィールド名 が使用されます。 setter メソッドにアノテーションが記述されている場合、デフォルトで属性名がアセンブリに使用されます。 が名前に一致する Bean を見つけられない場合、 はタイプ に従ってアセンブルされます。ただし、name 属性が指定されている場合は、名前に従ってのみアセンブルされることに注意してください。

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

@autowired アノテーションと @resource アノテーションの違いは何ですか?@リソースノート

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

プログラミング教育をご覧ください。 !

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

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境