假设我在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
答案 0 :(得分:6)
请参阅this answer,了解如何获取applicationContext的实例。可以通过以下方式连接bean属性:
def ctx = ...
def foo = new Foo()
ctx.beanFactory.autowireBeanProperties(foo, ctx.beanFactory.AUTOWIRE_BY_NAME, false)
我建议使用常规的spring bean(可能是原型范围)而不是这种方法。