Springプロファイル-コンストラクタのリロード
2185 ワード
constructor-argプロパティを指定すると、コンテナインスタンス化beanは、それに一致するコンストラクタを使用してbeanをインスタンス化します.
クラスに複数の構築メソッドが表示された場合、次のようになります.
コンフィギュレーションのconstructor-argの値がStringタイプであるため、2番目のコンストラクタStudio(String firstName,int age)に一致します.
constructor-argのtypeプロパティを使用し、type='int'と指定する必要があります.
コメント:
constructor-argのindexプロパティは、パラメータの位置を指定するために使用され、typeはパラメータのタイプを指定できます.
Listコレクションの場合、指定されたコレクション内の要素のタイプはlistラベルのvalue-typeを使用して要素のタイプを指定できます.そうしないと、デフォルトは文字列です.
クラスに複数の構築メソッドが表示された場合、次のようになります.
public class Student {
private String firstName;
private String lastName;
private int age;
public Student(String firstName,String lastName){
this.firstName=firstName;
this.lastName=lastName;
}
public Student(String firstName,int age){
this.firstName=firstName;
this.age=age;
}
...get set
}
コンフィギュレーションのconstructor-argの値がStringタイプであるため、2番目のコンストラクタStudio(String firstName,int age)に一致します.
constructor-argのtypeプロパティを使用し、type='int'と指定する必要があります.
<bean id="multiConsturctorStudent" class='com.chapter1p5.Student'>
<constructor-arg value="lisi"></constructor-arg>
<constructor-arg value="5" type="int"></constructor-arg>
</bean>
コメント:
constructor-argのindexプロパティは、パラメータの位置を指定するために使用され、typeはパラメータのタイプを指定できます.
Listコレクションの場合、指定されたコレクション内の要素のタイプはlistラベルのvalue-typeを使用して要素のタイプを指定できます.そうしないと、デフォルトは文字列です.