帮助我解决这个小困惑,因为我是grails的新手,并且正在使用spring 开发grails
secondBean中对firstBean的引用和resources.groovy 中对thirdBean的引用之间有什么区别吗
beans = {
firstBean(someclass)
secondBean(someotherclass) {
property = firstBean
}
thirdBean(someotherclass) {
property = ref(firstBean)
}
}
在您的示例中几乎没有任何区别。你得到的基本上是你刚刚定义的对象。因此,只有当您可以对代码进行排序时,这才有效,并且refs正好在resources.groovy
中时,这才会有效。更常见的情况是将ref
与字符串一起使用,这可能是"正向引用"。例如
beans = {
// fails! print b1
// fails! print ref(b1)
print ref("b1")
b1(Expando)
print b1
print ref(b1)
print ref("b1")
}
我会使用ref(<String>)
作为衡量标准,为底层的spring注入框架提供处理其依赖关系的最简单方法(例如,只需要在需要的时候创建组件)。