如何在 Spring Bean 中定义类型为 List<E> 的 属性?

How to define a property of type List<E> in a Spring Bean?

我使用 Hybris,在 beans.xml 文件中我们可以定义要在项目中使用的 POJO。

我想知道如何在 Spring 中定义一个 POJO,其中 属性 类型为 List,其中 E 应该是我在 beans.xml.[=17 中定义的另一种类型=]

比如我想定义一个这样的POJO:

public class MyPojo{
   private String someProperty;

   public String getSomeProperty(){
      return someProperty;
   }
   public void setSomeProperty(String someProperty){
      this.someProperty = someProperty;
   }
}

还有另一个将包含 MyPojo 列表的 POJO:

public class MyPojoListHolder{
    private List<MyPojo> myPojoList;

   public List<MyPojo> getMyPojoList(){
      return myPojoList;
   }
   public void setMyPojoList(String myPojoList){
      this.myPojoList= myPojoList;
   }
}

MyPojo 将在我的 beans.xml 中定义如下:

<bean class="my.package.MyPojo">
    <property name="someProperty" type="java.lang.String"></property>
</bean>

我可以这样定义 MyPojoListHolder:

<bean class="my.package.MyPojoListHolder">
    <property name="myPojoList" type="java.util.List"></property>
</bean>

但这会创建一个 class,其中 myPojoList 定义为 List 对象,但我希望它被定义为 List。

我怎样才能做到这一点?

例如,您可以这样做:

<property name="genders" type="java.util.List&lt;com.your.package.data.GenderData>"/>

在你的例子中,你最终会得到

<bean class="my.package.MyPojoListHolder">
  <property name="myPojoList" type="java.util.List&lt;my.package.MyPojo>"></property>
</bean>