Grails& Spring - in resources.groovy如何设置列表

时间:2013-04-05 10:14:34

标签: spring grails

问题很简单,如何在resources.groovy中创建bean列表?

这样的东西不起作用:

beans {
    listHolder(ListHolder){
        items = list(){
            item1(Item1),
            item2(Item2),
            ...
        }
    }
}

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:9)

如果你想要一个对其他名为 bean的引用列表,你可以使用普通的Groovy列表表示法,它将全部得到妥善解决:

beans {
    listHolder(ListHolder){
        items = [item1, item2]
    }
}

但是当"项目"时,这不起作用。需要是匿名内部bean,相当于XML

<bean id="listHolder" class="com.example.ListHolder">
  <property name="items">
    <list>
      <bean class="com.example.Item1" />
      <bean class="com.example.Item2" />
    </list>
  </property>
</bean>

您必须执行类似

的操作
beans {
    'listHolder-item-1'(Item1)
    'listHolder-item-2'(Item2)

    listHolder(ListHolder){
        items = [ref('listHolder-item-1'), ref('listHolder-item-2')]
    }
}

答案 1 :(得分:1)

很简单:

beans {
    item1(Item)
    item2(Item)
    listHolder(ListHolder) {
        items = [item1, item2]
    }
}

您可以在[Spring with the Beans DSL](http://grails.org/doc/latest/guide/spring.html#14.3 Runtime Spring with the Beans DSL)的文档中找到更多详细信息