1

我有一堂课

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

现在这个类有初始化 foo 和 bar 的构造函数。Baz但是有一个DataSource我想注入春天的领域。类A构造函数初始化所有但 NOT baz。现在A用初始化的类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 注入一个属性,而其余的由构造函数初始化?

2. 还有什么办法可以解决这个问题?

4

1 回答 1

1

对于构造函数的参数,使用constructor-argxml 标签,对于使用 setter 设置的参数,使用propertyxml 标签。

为此,您需要定义setBaz()方法。

那么你应该使用getBean()而不是自己构造对象。让春天为你建造它。

于 2013-08-11T11:48:32.073 回答