繁体   English   中英

Groovy Spring DSL:使用其他bean的属性构造bean

[英]Groovy Spring DSL: constructing beans with properties of other beans

我有一堆Spring Bean,其中一些需要从其他Bean初始化,而其中一些需要从其他Bean的属性初始化。 例如:

Foo {
}

Bar {
    String getBaz()
}

Qux {
    Qux(Foo foo, String baz)
}

我以为我可以写点什么

beans = {
    foo(Foo) {}
    bar(Bar) {}
    qux(Qux, ref('foo'), ref('bar').baz) {}
}

但是显然这是行不通的,因为ref('bar')不是Bar,它是RuntimeBeanReference

在普通的Spring(3+)中, Spring表达式显然可以实现我想要的功能,但是我无法通过Grails Spring DSL找出所需的语法。 能做到吗

我认为您的意思是这些类看起来像这样:

class Foo {
}

class Bar {
   String baz
}

class Qux {
   Foo foo
   String baz

   Qux(Foo f, String b) {
      foo = f
      baz = b
   }
}

并且第二个ref('foo')应该是ref('bar') 然后这将起作用:

beans = {
   foo(Foo)
   bar(Bar) {
      baz = 'wazzup'
   }
   qux(Qux, ref('foo'), '#{bar.baz}')
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM