帮助我解决这个小小的困惑,因为我不熟悉grails并使用spring来处理grails
secondBean中的ref to firstBean和resources.groovy中的thirdBean之间是否有任何区别
beans = {
firstBean(someclass)
secondBean(someotherclass) {
property = firstBean
}
thirdBean(someotherclass) {
property = ref(firstBean)
}
}
答案 0 :(得分:1)
在你的例子中几乎没有任何区别。你基本上得到了你刚刚定义的对象。因此,只有在您可以订购代码的情况下,这才有效,所以这可行,如果裁剪在您的resources.groovy
内。更常见的情况是使用带有字符串的ref
,这可能是“转发参考”。 E.g。
beans = {
// fails! print b1
// fails! print ref(b1)
print ref("b1")
b1(Expando)
print b1
print ref(b1)
print ref("b1")
}
我使用ref(<String>)
作为好的衡量标准,为底层弹簧注入框架提供了处理其依赖关系的最简单方法(例如,只有在需要时才需要创建组件)。