6

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

像这样的东西不起作用:

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

在此先感谢您的帮助。

4

2 回答 2

10

如果你想要一个对其他命名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')]
    }
}
于 2013-04-05T11:14:28.303 回答
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)

于 2013-12-31T18:23:56.713 回答