[英]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.