Как определить боб Списка в Spring?

Я использую Spring для определения этапов в моем приложении. Это настроено что необходимый класс (здесь названный Configurator) введен с этапами.
Теперь мне нужен Список Этапов в другом классе, названном LoginBean. Configurator не предлагает доступа к его Списку Этапов.

Я не могу изменить класс Configurator.

Моя идея:
Определите новый боб под названием Этапы и введите его к Configurator и LoginBean. Моя проблема с этой идеей состоит в том, что я не знаю, как преобразовать это свойство:

<property ...>
  <list>
    <bean ... >...</bean>
    <bean ... >...</bean>
    <bean ... >...</bean>
  </list>
</property>

в боб.

Что-то вроде этого не работает:

<bean id="stages" class="java.util.ArrayList">

Кто-либо может помочь мне с этим?

195
задан Betlista 5 March 2013 в 04:32
поделиться

4 ответа

Импортируйте пространство имен spring util. Затем вы можете определить bean-компонент списка следующим образом:

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


<util:list id="myList" value-type="java.lang.String">
    <value>foo</value>
    <value>bar</value>
</util:list>

Тип-значение - это универсальный тип, который будет использоваться, и не является обязательным. Вы также можете указать класс реализации списка с помощью атрибута list-class .

274
ответ дан 23 November 2019 в 05:21
поделиться

Вот один из методов:

<bean id="stage1" class="Stageclass"/>
<bean id="stage2" class="Stageclass"/>

<bean id="stages" class="java.util.ArrayList">
    <constructor-arg>
        <list>
            <ref bean="stage1" />
            <ref bean="stage2" />                
        </list>
    </constructor-arg>
</bean>
168
ответ дан 23 November 2019 в 05:21
поделиться

Думаю, вы ищете org.springframework.beans.factory.config.ListFactoryBean .

Вы объявляете экземпляр ListFactoryBean, предоставляя список для создания экземпляра как свойство с элементом в качестве его значения, и присваиваете компоненту атрибут id . Затем, каждый раз, когда вы используете объявленный id как ref или аналогичный в каком-либо другом объявлении bean-компонента, создается новая копия списка. Вы также можете указать используемый класс List .

4
ответ дан 23 November 2019 в 05:21
поделиться

Используя пространство имен util, вы сможете зарегистрировать список как bean-компонент в контексте вашего приложения. Затем вы можете повторно использовать список, чтобы внедрить его в другие определения bean-компонентов.

1
ответ дан 23 November 2019 в 05:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: