Springプロファイル-コンストラクタのリロード


constructor-argプロパティを指定すると、コンテナインスタンス化beanは、それに一致するコンストラクタを使用してbeanをインスタンス化します.
 
クラスに複数の構築メソッドが表示された場合、次のようになります.
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を使用して要素のタイプを指定できます.そうしないと、デフォルトは文字列です.