【问题标题】:Inject array of strings to a bean in Spring在 Spring 中将字符串数组注入 bean
【发布时间】:2012-11-11 18:28:03
【问题描述】:
<?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 需要一个字符串数组。

春天怎么做?

【问题讨论】:

    标签: java spring


    【解决方案1】:

    你应该使用:

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

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

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

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

    值类型

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

    【讨论】:

      【解决方案2】:

      而不是&lt;list&gt; 使用

      <array>
        <value>aa</value>
        <value>bb</value>
        <value>cc</value>
      </array>
      

      【讨论】:

        【解决方案3】:

        您可以使用 Spring 3.2.8 版

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

        没有问题。

        【讨论】:

          【解决方案4】:

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

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

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

          不确定是哪个版本引入的。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-04-20
            • 2012-02-19
            • 2011-05-29
            • 1970-01-01
            • 2023-04-09
            相关资源
            最近更新 更多