我通过插件中的服务分散代码,使用AntBuilder,如下所示:
def ant = new AntBuilder()
这导致代码很难测试我想要注入一个原型范围的AntBuilder,我可以用mock替换它。但是,我几乎是一个春天的新手...我该怎么做?
我试过把它放在/grails-app/conf/spring/resources.groovy中:
beans = {
antBuilderBean(groovy.util.AntBuilder){b ->
b.scope="prototype"
}
}
和
class MyService {
def antBuilderBean
但是antBuilderBean为null。如果我将bean定义放在 application 的resources.groovy(而不是 plugin 的resources.groovy)中,那么bean名称将显示在应用程序上下文中,但是antBuilderBean仍然在服务代码中恢复为null。
我在这里需要某种工厂豆吗?或者,我是否必须从Spring上下文中显式构建bean?
答案 0 :(得分:0)
这适用于我在新应用中复制/粘贴您的代码。尝试运行'grails clean' - 它经常修复这类意外行为的问题。