簡體   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