Grails 和 Spring - 在 resources.groovy 中如何设置列表

Posted

技术标签:

【中文标题】Grails 和 Spring - 在 resources.groovy 中如何设置列表【英文标题】:Grails & Spring - in resources.groovy how to setup a list 【发布时间】:2013-03-27 17:09:20 【问题描述】:

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

类似的东西不起作用:

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

提前感谢您的帮助。

【问题讨论】:

【参考方案1】:

如果你想要一个对其他 named 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')]
    

【讨论】:

【参考方案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)的文档中找到更多详细信息

【讨论】:

以上是关于Grails 和 Spring - 在 resources.groovy 中如何设置列表的主要内容,如果未能解决你的问题,请参考以下文章

grails-spring-security-rest 插件和悲观锁定

Grails 和 Spring - 在 resources.groovy 中如何设置列表

Grails 3 Spring Security 覆盖登录表单

在带有 CAS 和 LDAP 的 Grails 中使用 Spring Security

Spring Security UI 和 grails 2.0

Grails 1.3.5 和 Spring Security Core