当我使用Grails提供的Spring DSL时,可以进行构造函数注入。如果是这样,我们将非常感谢一个例子。
如果构造函数注入不可行,是否有其他方法可以注入spring bean而不会使依赖项公共属性。在Java项目中使用Spring我可以这样做
class Foo {
@Autowired
private Bar bar
}
它将按名称或类型
自动装配Bar
依赖项
答案 0 :(得分:4)
即使使用BeanBuilder DSL也可以使用构造函数注入
bb.beans {
exampleBean(MyExampleBean, "firstArgument", 2) {
someProperty = [1,2,3]
}
}
每当你想引用其他bean作为构造函数参数时,使用ref()方法
bb.beans {
exampleBean(MyExampleBean, "firstArgument", ref('anotherBean')) {
someProperty = [1,2,3]
}
}
答案 1 :(得分:2)
您应该能够inject a bean into the constructor使用@Autowired
注释,就像您在Spring中通常所做的那样。这是一个例子:
class Foo {
private final Bar bar
@Autowired
public Foo(Bar bar) {
this.bar = bar
}
}