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