使用setter方法注入Spring依赖项?

时间:2015-02-17 07:00:04

标签: java spring java-ee-6

我有以下课程。

public class SomeBeanClass implements SomeInterface{


    private IAccountHistory acctHistory;

    public void setAccountHistory(IAccountHistory  acctHistory) {
        this.acctHistory = acctHistory;
    }

}


public interface IAccountHistory{
 //some methods
}

public class AccountHistory implements IAccountHistory{
  //some logic
}

Spring配置:

<bean name="someBean" class="com.mypack.SomeBeanClass">
        <property name="AccountHistory">
            <bean class="com.mypack.AccountHistory"/>
        </property>
</bean>

在上面的spring配置中,属性名称为AccountHistory。但SomeBeanClass没有任何名为AccountHistory的属性。注射如何在这里工作?请帮帮我。

2 个答案:

答案 0 :(得分:2)

  

SomeBeanClass没有任何名为AccountHistory的属性。

确实如此:

public void setAccountHistory(IAccountHistory  acctHistory) {
    this.acctHistory = acctHistory;
}

属性不是字段。它是一个Java bean属性(带有一些额外的命名容限),用getter或setter表示。

答案 1 :(得分:-4)

请将您的XML更新为

<bean id="accountHistory" class="com.package.AccountHistory" />
<bean id="someBean" class="com.mypack.SomeBeanClass">
     <property name="acctHistory" ref="accountHistory"/>          
</bean>

我建议使用注释,如果你有充分的理由使用XML那么请继续。

如果有帮助,请告诉我。