【问题标题】:How to fill a varargs contructor unsing applicationContext beans?如何使用应用程序上下文 bean 填充可变参数构造函数?
【发布时间】:2020-03-18 06:46:03
【问题描述】:

我有一个带有可变构造函数的课程

public class ScpDataProvider {
------------
    public ScpDataProvider(DataStore... datastores) {
        for(DataStore d : datastores) {
            if(d.type.equals("SQL"))
                initSqlConnection(d);
            dataStores.AddDataStore(d);
        }
    }
------------
}

如何用数据存储的 bean 填充构造函数? 这导致Attribute "ref" is not allowed here

<bean id="dataService"
      class="com.fressnapf.sdk.dataaccess.services.impl.ScpDataProvider">
    <constructor-arg>
        <array>
            <bean ref="dataStore" />
            <bean ref="dataStore2" />
        </array>
    </constructor-arg>
</bean>

【问题讨论】:

    标签: java javabeans applicationcontext


    【解决方案1】:

    您可以使用参考列表:

    <bean id="dataService" class="com.fressnapf.sdk.dataaccess.services.impl.ScpDataProvider">
    <constructor-arg>
        <list>
             <ref bean="dataStore" />
             <ref bean="dataStore2" />
        </list>
    </constructor-arg>
    

    【讨论】:

    • 这应该是&lt;ref bean="dataStore" /&gt;。请更换。但它奏效了!
    • 哎呀,没注意到。谢谢! :)
    猜你喜欢
    • 2011-03-28
    • 2012-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-02
    • 2018-02-22
    相关资源
    最近更新 更多