使用MANY bean在spring中填充<list>标记

时间:2016-01-09 14:11:19

标签: java spring spring-mvc

<util:list id="messageUtilList">
    <ref bean="stringMessage01"/>
    <ref bean="stringMessage02"/>
    ....more then a million elements must be stored in that list

</util:list>

是否存在任何解决方案,例如代码中的某个变量List<Obj> messages和SPRING xml中的<list>标记

这样的东西
 <util:list id="messageUtilList">
    <ref messages/>
</util:list>

1 个答案:

答案 0 :(得分:0)

据推测,您有一个bean定义,您可以在其中注入列表messageUtilList

bean id="myListConsumerBean" class="ListConsumerClass"
  1. 创建一个接口ListGenerator

    public interface ListGenerator<T> {
        public List<T> generateList();
    }
    
  2. 创建列表生成器,为大量消息构建列表(将String替换为实际消息类)

    public class MyListGenerator implements ListGenerator<String> {
    
     @Override
     public List<String> generateList() {
    
       List<String> myList = new ArrayList<String>();
    
        ... code to populate list ...
        return myList;
      }
    } 
    
  3. 修改ListConsumerClass以接受ListGenerator(而不是List)

  4. 调整Spring bean连接,为MyListGenerator创建一个bean定义,并将其注入ListConsumerClass(而不是创建和注入util:list)。 generateList()方法将包含数百万个元素。