Java アノテーションのオートワイヤードとリソースの違いは何ですか?

Java アノテーションでは、依存関係注入を実装するために @Autowired と @Resource の両方が使用されます。

1. @Autowired: @Autowired は、自動アセンブリのために Spring フレームワークによって提供されるアノテーションです型の一致によって対応する Bean を検索し、それをターゲットの変数またはパラメーターに注入します。一致する Bean が複数ある場合は、@Qualifier アノテーションを使用して特定の Bean を指定できます。

2. @Resource: @Resource は Java EE 標準によって提供されるアノテーションであり、依存関係注入の実装にも使用されます。名前の一致に従って対応する Bean を見つけ、それをターゲットの変数またはパラメーターに注入します。一致する Bean が複数ある場合は、name 属性を通じて特定の Bean を指定できます。

 主な違いは次のとおりです。

- 異なるソース: @Autowired は Spring フレームワークによって提供されるアノテーションであり、@Resource は Java EE 標準によって提供されるアノテーションです。
- さまざまな注入方法: @Autowired はタイプの一致によって注入し、@Resource は名前の一致によって注入します。
- 使用範囲が異なります。@Autowired はコンストラクター、フィールド、メソッド、パラメーターで使用できますが、@Resource はフィールドとメソッドでのみ使用できます。
- 異なるオプション: @Autowired のデフォルトの必須属性は true であり、このアノテーションによってマークされた依存関係が存在する必要があることを意味します。対応する Bean が見つからない場合は、例外がスローされます。@Resource の場合、デフォルトの required 属性は false であり、アノテーションによってマークされた依存関係は必要ないことを意味します。対応する Bean が見つからない場合、その Bean は挿入されません。

@Autowired アノテーションと @Resource アノテーションは、特定のフレームワークまたはコンテナーの構成と仕様に応じて、さまざまなコンテキストで異なる特定の実装と動作を持つ可能性があることに注意してください。

おすすめ

転載: blog.csdn.net/m0_62600503/article/details/131860580