17
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://            www.springframework.org/schema/beans/spring-beans.xsd">

   <bean id="test" class="com.Test">
        <constructor-arg>
            <list>
                <value>aa</value>
                <value>bb</value>
                <value>cc</value>
            </list>
        </constructor-arg>
    </bean>
</beans>

这是我当前的 XML。如果Test只拿一个清单 - 一切都会好起来的。

问题是Test需要一个字符串数组。

春节怎么办?

4

4 回答 4

21

你应该使用:

<constructor-arg>
    <array>
        <value>aa</value>
        <value>bb</value>
        <value>cc</value>
    </array>
</constructor-arg>

一个数组可以包含多个内部 bean、ref、collection 或 value 元素。此配置元素将始终生成一个数组,即使在被定义为例如具有值类型 Object 的映射的值时也是如此。

您还可以指定要传递的值类型:

<array value-type="java.lang.String">
  <value>aa</value>
  <value>bb</value>
  <value>cc</value>
</array>

值类型

嵌套值的默认 Java 类型。必须是完全限定的类名。

于 2012-11-23T11:38:45.367 回答
4

而不是<list>使用

<array>
  <value>aa</value>
  <value>bb</value>
  <value>cc</value>
</array>
于 2012-11-23T11:36:43.100 回答
3

使用 Spring 3.2.8 版,您可以使用

<constructor-arg>
    <list>
        <value>aa</value>
        <value>bb</value>
        <value>cc</value>
    </list>
</constructor-arg>

没有问题。

于 2014-09-02T09:58:40.167 回答
2

如果构造函数有String[]作为参数(也包括String...),您可以提供一个逗号分隔的列表:

<constructor-arg value="Hindustan Moters,Tata Moters,Ashoka Leyland"/>

众所周知,这用于将例如 H2 DB 服务器实例化为 bean。参见例如这里

不知道是哪个版本介绍的。

于 2019-03-25T20:46:58.590 回答