问题很简单,如何在 resources.groovy 中创建 bean 列表?
像这样的东西不起作用:
beans {
listHolder(ListHolder){
items = list(){
item1(Item1),
item2(Item2),
...
}
}
}
在此先感谢您的帮助。
如果你想要一个对其他命名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')]
}
}
这简单:
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)