1

クラスがあります

class A{
     private Foo foo;
     private Bar bar;
     private Baz baz;
}

現在、このクラスには foo と bar を初期化するコンストラクターがあります。BazただしDataSource、バネを注入したいフィールドがあります。クラス コンストラクターはA、 NOT を除くすべてを初期化しますbazAでクラスが初期化されましたnew

A a = new A(Foo, Bar)

Aクラスにはセッターがあります。豆

<bean id="ABean" class="com.acme.A" >
        <property name="baz">
                    <bean class="com.acme.baz">
                            <property name="dataSource" ref="mysqlDataSource">  </property> 
                    </bean>     
        </property>
    </bean> 

しかし、私は取得し続けます:

nested exception is java.lang.NoSuchMethodException: com.acme.A.<init>()

1. Bean ごとに 1 つのプロパティのみを注入し、残りはコンストラクタで初期化する方法は?

2.これを解決できる他の方法は何ですか?

4

1 に答える 1

1

コンストラクターへの引数にはconstructor-argxml タグを使用し、setter を使用して設定されるパラメーターには xml タグを使用しますproperty

それが機能するには、メソッドを定義する必要がありますsetBaz()

次にgetBean()、オブジェクトを自分で作成するのではなく、使用する必要があります。春にそれを構築させてください。

于 2013-08-11T11:48:32.073 に答える