2016-06-01 1 views
-1

私のpojoクラスが依存性を注入する プライベートint id; プライベートint年齢。 プライベート文字列名。スプリングコンストラクタのオーバーロード依存性インジェクション

Pojo(int id){ 
    this.id=id; 
} 
Pojo(int age, String name){ 
    this.age=age; 
    this.name=name; 
} 
public void getDetails(){ 
    System.out.println("id= "+ id +"age= "+age+"name= "+name); 
} 

configuration.xmlの

<constructor-arg value="1390" type="int" /> 
    <constructor-arg value="25" type="int" index="0" /> 
    <constructor-arg value="Ravi" type="String" index="1"/> 

例外:エラー[conf.xml]クラスパスリソースに定義された名前 'ID1' とビーン作成:一致コンストラクタ(ヒントを解決できませんでした:インデックス/タイプを指定しますタイプの曖昧さを回避するための簡単なパラメータのために/名引数)

+0

Springは単一のコンストラクタを使用してオブジェクトを作成します。パラメータの数とパラメータの型に一致するコンストラクタ定義が必要です –

答えて

1

このコンストラクタを追加し、

Pojo(int id, int age, String name){ 
    this.id=id 
    this.age=age; 
    this.name=name; 
} 
を試してみてくださいあなたがたconfiguration.xmlに3つのパラメータを渡している 、および3つのパラメータを受け取るためにあなたのコードには同等のコンストラクタがありません:

は、エラーのためにあなたのconfiguration.xml

<constructor-arg value="1390" type="int" index="0"/> 
<constructor-arg value="25" type="int" index="1" /> 
<constructor-arg value="Ravi" type="String" index="2"/> 

理由を変更します。

+0

したがって、これらのオーバーロードコンストラクタは不可能ですか? –

+0

いいえ、Springは、2つではなく、1つのコンストラクタを呼び出してオブジェクトを作成することができます。 – dunni

+0

ありがとう –