spring注釈に基づく構成@Required@Autowired
6227 ワード
@Required
public void setAge(Integer age) {
this.age = age;
}
"student" class="com.tutorialspoint.Student">
"name" value="Zara" />
"age" value="11"/>
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)オプションを使ってデフォルトの動作をオフにすることができます.
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>
フィールドまたはセッターメソッドで@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属性名を使用しています.