@Autowireと@Resourceの注釈の違い
1625 ワード
記事の目次紹介します. 詳細解 @Autowire @Resource 比較 総括 紹介する
@Autowireと@ResourceはともにSpringでサポートされている注釈方式で、動的にbeanを組み立てます.
詳しく説明する
@Autowire
@Autowireデフォルトではタイプ(by-type)で組み立てられていますが、デフォルトでは依存対象が必要です.依存対象がnullであることを許可する場合、required属性がfalseであること、すなわち を設定する必要がある.名称(by-name)に従って組み立てる場合、@Qualfier注解と組み合わせて使用する必要があります.すなわち、 です.
@Autowireは名称(by-name)で組み立てると@Autowire+@qualifer(')=@Resource(name=")
@Resource
@Resourceデフォルトは名称(by-name)で組み立てられており、名称はname属性で指定できます.指定がない場合は、name は、注釈がフィールド上にある場合、デフォルトではname=フィールド名の組み立てを行う. .setter方法に注釈がある場合、デフォルトではname=属性名組立. 名称(by-name)で組み立てられていない場合は、タイプ(by-type)で組み立てられます. 指定されたname属性が表示されると、名称(by-name)のみで組み立てることができます.
@Resoure組立手順 nameとtypeの属性を同時に指定すると、唯一のマッチングのbean組立が見つかり、見つからないと投げ異常が発生します. name属性を指定すると、名前(by-name)に従って組み立てられ、見つからないなら異常を投げます. type属性を指定すると、タイプ(by-type)に従って組み立てられ、複数が見つからないか、見つかったら投げ異常が発生します. は、name属性が指定されておらず、type属性が指定されていない場合は、名称(by-name)で組み立てられ、見つからない場合は、タイプ(by-type)で組み立てられます.
比較
比較項目
@Autowire
@Resource
注解元
Springコメント
JDKコメント(JSR-250標準注、J 2 EEに属します)
組み立て方式
優先的にタイプによる
優先的に名前で
属性
required
name、type
作用範囲
フィールド、セット方法、コンストラクタ
フィールド、セット方法
説明:
作用範囲はフィールド上にあります.setterメソッドを書く必要はありません.
締め括りをつける
おすすめは@Resourceです. 注釈はJ 2 EEに属し、Springとの結合を減らす .
@Autowireと@ResourceはともにSpringでサポートされている注釈方式で、動的にbeanを組み立てます.
詳しく説明する
@Autowire
@Autowireデフォルトではタイプ(by-type)で組み立てられていますが、デフォルトでは依存対象が必要です.
@Autowire(required=false)
private InjectionBean beanName;
@Autowire
@Qualifier("beanName")
private InjectionBean beanName;
説明@Autowireは名称(by-name)で組み立てると@Autowire+@qualifer(')=@Resource(name=")
@Resource
@Resourceデフォルトは名称(by-name)で組み立てられており、名称はname属性で指定できます.
@Resoure組立手順
比較
比較項目
@Autowire
@Resource
注解元
Springコメント
JDKコメント(JSR-250標準注、J 2 EEに属します)
組み立て方式
優先的にタイプによる
優先的に名前で
属性
required
name、type
作用範囲
フィールド、セット方法、コンストラクタ
フィールド、セット方法
説明:
作用範囲はフィールド上にあります.setterメソッドを書く必要はありません.
締め括りをつける
おすすめは@Resourceです.