我在Grails 2.4
服务部分创建了一项服务。在控制器中,它使用依赖注入并自动初始化。我想在ClassifiedService
文件夹中定义的自定义帮助程序类中使用相同的服务src/groovy
。
问题1 :我应该直接拨打以下服务:
ClassifiedService classifiedService = new ClassifiedService()
如果我尝试使用Grails的依赖注入,如下所示,该对象始终为null。
def classifiedService
问题2 :建议为Service方法创建一个接口并使用它并用实际的类初始化它?
答案 0 :(得分:2)
您可以将帮助程序类添加到conf/spring/resources.groovy
:
import foo.bar.MyHelperClass
beans = {
myHelperClass(MyHelperClass)
}
这将创建一个名为myHelperClass
的bean,其类为MyHelperClass
。此bean中的所有字段都是自动装配的(依赖注入会自动发生)。
在此之后,您可以使用
将服务依赖项添加到myHelperClass
def classifiedService
您还可以将辅助类注入控制器和服务。 如果需要访问控制器/服务外部的帮助程序类,可以使用
获取实例def helper = grailsApplication.mainContext.getBean('myHelperClass')
有关详细信息,请参阅Grails文档中的spring部分