Grails:常规groovy类中的依赖注入

时间:2009-11-04 17:28:56

标签: grails dependency-injection

假设我在grails-app / services下有一个BarService,在src / groovy下有这样的常规Groovy类'Foo'。

class Foo {
  def barService
}

有没有办法在运行时以编程方式将其转换为Spring bean?为了澄清,我想获得一个注入barService字段的BarService的引用。

def fooInstance = new Foo()
magic-create-spring-bean-function(fooInstance)
assert fooInstance.barService

1 个答案:

答案 0 :(得分:6)

请参阅this answer,了解如何获取applicationContext的实例。可以通过以下方式连接bean属性:

def ctx = ...
def foo = new Foo()
ctx.beanFactory.autowireBeanProperties(foo, ctx.beanFactory.AUTOWIRE_BY_NAME, false)

我建议使用常规的spring bean(可能是原型范围)而不是这种方法。