我们如何使用带有可变参数的FactoryMethod
创建bean。
public class ConnectionFactoryClass {
public static Connection composeConnection(final Property... properties) {
...
}
}
bean.xml
<bean id="Connection"
class="com.example.ConnectionFactoryClass"
factory-method="composeConnection"
scope="singleton">
<constructor-arg ref="Driver"/>
<constructor-arg ref="Pool"/>
</bean>
春天给我一个错误说,
org.springframework.beans.factory.BeanCreationException:创建文件[./beans.xml]中定义名为“Connection”的bean时出错:找不到匹配的工厂方法:工厂方法'composeConnection'
答案 0 :(得分:5)
尝试以下方法:
<bean id="Connection"
class="com.example.ConnectionFactoryClass"
factory-method="composeConnection"
scope="singleton">
<constructor-arg>
<array>
<bean ref="Driver" />
<bean ref="Pool" />
</array>
</constructor-arg>
</bean>
我认为您遇到了问题,因为JVM将var arg参数转换为Object Array,您需要将单个参数传递给构造函数,该构造函数是对象数组。我没有尝试过上面的xml,所以我可能会有拼写错误,但上面的内容应该可行。