Spring - 错误的方法叫做

时间:2013-01-07 18:12:59

标签: java spring

我在spring配置文件中提供了followind定义:

<bean id="path" class="java.nio.file.Paths" factory-method="get">
    <constructor-arg>
        <value type="java.lang.String">${limits.path}</value>
    </constructor-arg>
</bean>
可以使用String参数或URI参数调用

Paths.get。在上面的例子中,SPring将它解析为URI,这是错误的...任何想法为什么?

1 个答案:

答案 0 :(得分:4)

尝试使用特定索引,可能会遇到问题,因为它在方法签名中有一个varargs。

来自oracle docs

get(String first, String... more)

尝试类似的事情:

<bean id="path" class="java.nio.file.Paths" factory-method="get">
    <constructor-arg index="0"
                     type="java.lang.String" 
                     value="${limits.path}" />    
</bean>

如果不起作用,请尝试使用空列表:

<bean id="path" class="java.nio.file.Paths" factory-method="get">
    <constructor-arg index="0">
        <value type="java.lang.String">${limits.path}</value>  
    </constructor-arg>
    <constructor-arg index="1">
        <list></list>
    </constructor-arg>
</bean>