@Required@Autowired@Resource注記の詳細

3211 ワード

一、@Required注記特定の属性が設定されているかどうかを確認するために使用
1.R equiredAnnotationBeanPostProcessorは、注記されたプロセッサ、すなわちbeanバックグラウンドプロセッサのために、その解を持つすべてのbean属性が設定されているかどうかを確認し、設定されていない場合は例外を放出します.
2.springプロファイルに要素でRequiredAnnotationBeanPostProcessorプロセッサを自動的に登録できます.
3.RequiredAnnotationBeanPostProcessorプロセッサは、@Requiredと一致する注釈をカスタマイズして属性をチェックすることもできます.
次のようになります.
   1.注記のタイプを定義
@Retention(RetentionPolicy.RUNTIME)

@Target(ElementType.METHOD)

public @interface CustomRequired {



}

   2.RequiredAnnotationBeanPostProcessorを構成し、カスタム注釈タイプを入力します.
 <bean class="org.springframework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor">

      <property name="requiredAnnotationType">

        <value>CustomRequired</value>      

      </property>

  </bean>

@CustomRequiredを使用して、属性が設定されているかどうかを確認できます.機能は@Requiredと一致します.
 
 
二、@Autowiredタイプによるbean属性の注入
1.A u t o w i r e d AnnotationBeanPostProcessorこの注釈のプロセッサ
2.springプロファイルで要素を使用してAutowiredAnnotationBeanPostProcessorプロセッサを自動的に登録できます.
3.デフォルトでは@Autowiredのプロパティは必須ですが、設定しないと例外が放出されます.@Autowiredのrequiredプロパティをfalseに設定できます.一致するbeanが見つからない場合は、寸法のプロパティは設定されません.
4.
配列またはListセットに注記すると、springはすべてのタイプの一致するbeanをデータまたはListセットに注入する
  @Autowired
  private Generator[] generators;
キーが文字列のMapに注記すると、すべてのタイプが一致するbeanがmapに注入され、bean名がkeyになります.
 @Autowired
 private Map generators;
 
注意:クラスに@PostConstructバックグラウンドプロセッサを指定すると、@Autowiredなどの注入依存オブジェクトを使用できます.
彼らはバックグラウンドプロセッサが実行される前に注入に依存していた.
 
5.@Qualifier注記は、@Autowired注記をタイプおよび名前でbeanに注入するように定義します.
 @Autowired
 @Qualifier("myGenerator")
 private Generator generator;//注入タイプがGeneratorでmyGeneratorというbean
 
6.@Autowired非集合属性と配列属性を入力すると、複数の一致タイプが見つかった場合に例外が報告されます.タイプ別にマッチしているため、複数見つかり、どれが注入されているか分からない
 
3@Resourceは属性を名前で注入し、見つからない場合はタイプで注入します.
1.C ommon AnnotationBeanPostProcessorはこの注釈のプロセッサorgである.springframework.context.annotation.CommonAnnotationBeanPostProcessor