Ввести массив строк в bean в Spring
<?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
принимает массив строк.
Как это сделать в 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
вместо <list>
используйте
<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>
без проблем.