@Resourceと@Autowiredの比較

同じ点

フィールドまたはメソッドに注釈を付けて、自動アセンブリを実現します

1. @AutowiredはSpringによって提供され、@ ResourceはJava言語によって提供されます。このアノテーションを使用すると、Springのデカップリングを実現できます(ただし、今ではほとんど重要ではないSpringの世界です)。

2.豆を見つけるさまざまな方法

@Autowired:最初にタイプでBeanを検索します。見つかった場合は直接注入されます。見つからなかった場合は例外がスローされます。複数のBeanが見つかった場合は例外もスローされます。解決策1:あなたBeanの構成時に追加できます@Primaryアノテーションを使用して優先度を上げ、エラーが報告されないようにします。解決策2:デフォルトでフィールド名が一致に使用されます。一致がない場合、例外がスローされます。BeanのIDで直接検索する必要がある場合は、@ Qualifierとともに使用できます。例外が見つからない場合は、スローされます。

PS:@Autowiredの使用が優先されることを指摘することが重要です。@ Qualifier>タイプで検索(使用を続けた後に複数の戦略が見つかった場合)> @Primary>名前で検索

@Resource:  name属性がアノテーションに設定されている場合は、idで直接検索され、そうでない場合は例外がスローされます。name属性がアノテーションに設定されていない場合、デフォルトではフィールド名(またはパラメータ名)を最初に指定し、見つからない場合はタイプ検索を渡します。0以上が見つかった場合は例外がスローされます。注:1つのタイプに対して複数のBeanが見つかった状況を解決するために、ここでは@Primaryはサポートされていません。 。

3. required = falseを設定してBeanが見つからない場合、@ Autowiredは例外をスローしません

要約すると、@ Autowiredにはより多くの機能があり、推奨されます

おすすめ

転載: blog.csdn.net/qq_28411869/article/details/89355153
おすすめ