一尘不染

Java 如何在Spring中定义List bean?

java

我正在使用Spring定义应用程序中的阶段。配置为将必要的类(此处称为Configurator)与阶段一起注入。
现在,我需要另一个名为的类的阶段列表LoginBean。在Configurator不提供访问其阶段的名单。

我不能改变班级Configurator

我的想法:
定义一个名为Stages的新bean,并将其注入到Configurator和中LoginBean。我的想法是,我不知道如何转换此属性:

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

变成豆

这样的事情不起作用:

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

有人可以帮我吗?


阅读 692

收藏
2020-03-11

共1个答案

一尘不染

导入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

2020-03-11