如何只将一个属性注入类中

时间:2013-08-11 11:38:03

标签: java spring property-injection

我有一个班级

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

现在这个类有构造函数初始化foo和bar。 Baz但是有一个DataSource字段,我希望用弹簧注入。 A类构造函数初始化除baz之外的所有内容。现在,A类已使用new初始化。

A a = new A(Foo, Bar)

A类有setter。 豆

<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。还有什么方法可以解决这个问题?

1 个答案:

答案 0 :(得分:1)

对于构造函数的参数,使用constructor-arg xml标记,对于使用setter设置的参数,请使用property xml标记。

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

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