spring注釈に基づく構成@Required@Autowired

6227 ワード

  • @Required
  • 注釈はbean属性のsetter方法に適用されます.これは影響を受けるBean属性がxmlプロファイルに配置されていることを示しています.そうでないと、容器はBeanInitalization Exception異常を投げ出します.上の図に示すように、spring.xmlの中でbeanがageに対するメタデータの割り当てをキャンセルすると、異常を投げます.
    @Required
       public void setAge(Integer age) {
          this.age = age;
       }
    
    "student" class="com.tutorialspoint.Student">
          "name"  value="Zara" />
          "age"  value="11"/>
    
  • @Autowired
  • @Autowiredコメントはどこで自動接続を完了するかについて、より詳細な制御を提供します.Autowired注釈は、setter方法において、自動的にbeanを接続するために使用されてもよく、例えば@Autowired注釈、容器、属性、または任意の名前が付けられている可能性がある方法である.
    Setterメソッドの@AutowiredはXMLファイルのsetterメソッドで@Autowired注釈を使って要素を除去できます.Springがsetterメソッドで使用されている@Autowired注釈に出会うと、メソッドのビューでbyType自動接続が実行されます.
    属性の@Autowiredでは@Autowiredコメントを使って、setterメソッドを削除できます.自動接続属性として使用されていた場合、Springはこれらの伝達された値や引用をそれらの属性に自動的に割り当てます.
    コンストラクタの@Autowiredはコンストラクタの中で@Autowiredを使ってもいいです.一つのコンストラクタ@Autowiredは、beanを作成すると、XMLファイルに要素構成beanが使用されていなくても、コンストラクタは自動的に接続されると説明しています.
    @Autowiredの(required=false)オプションはデフォルトの場合、@Autowiredコメントは依存が必要であり、@Requiredコメントと似ていますが、@Autowiredの(required=false)オプションを使ってデフォルトの動作をオフにすることができます.
  • @Qualfier
  • @Qualfierは同じタイプのbeanを複数作成した場合、一つの属性でそれらの一つだけを組み立てたい場合があります.この場合、@Qualfierの注釈と@Autowiredの注釈を使って、どの本物のbeanが組み立てられているかを指定することによって混乱を解消します.以下には@Qualfierを使ったコメントの一例が表示されます.
    public class Profile {
       @Autowired
       @Qualifier("student1")
       private Student student;
       public Profile(){
          System.out.println("Inside Profile constructor." );
       }
    }
    <context:annotation-config/>
    
       
       <bean id="profile" class="com.tutorialspoint.Profile">
       bean>
    
       
       <bean id="student1" class="com.tutorialspoint.Student">
          <property name="name"  value="Zara" />
          <property name="age"  value="11"/>
       bean>
    
       
       <bean id="student2" class="com.tutorialspoint.Student">
          <property name="name"  value="Nuha" />
          <property name="age"  value="2"/>
       bean>
  • JSR-250コメント
  • @PostConstructコメントは、初期化されたコールバック関数の代わりに@Predestryコメントを破壊コールバック関数の代わりに@Resourceコメントとして使用します.
    フィールドまたはセッターメソッドで@Resourceコメントを使ってもいいです.Java EE 5での動作と同じです.
    @Resourceコメントは「name」属性を使用しており、この属性はbean名の形で注入されている.以下の例に示すように、by-nameに従って自動的に意味を接続するということができます.
    package com.tutorialspoint;
    import javax.annotation.Resource;
    public class TextEditor {
       private SpellChecker spellChecker;
       @Resource(name= "spellChecker")
       public void setSpellChecker( SpellChecker spellChecker ){
          this.spellChecker = spellChecker;
       }
       public SpellChecker getSpellChecker(){
          return spellChecker;
       }
       public void spellCheck(){
          spellChecker.checkSpelling();
       }
    }
    「name」が明示的に指定されていない場合、デフォルトの名前はフィールド名またはsetterメソッドに由来します.フィールドの場合、フィールド名を使用します.setter法の場合、それはbean属性名を使用しています.