如何在帮助程序类中使用Grails服务

时间:2014-06-12 11:19:11

标签: grails grails-services

我在Grails 2.4服务部分创建了一项服务。在控制器中,它使用依赖注入并自动初始化。我想在ClassifiedService文件夹中定义的自定义帮助程序类中使用相同的服务src/groovy

问题1 :我应该直接拨打以下服务:

ClassifiedService classifiedService = new ClassifiedService()

如果我尝试使用Grails的依赖注入,如下所示,该对象始终为null。

def classifiedService

问题2 :建议为Service方法创建一个接口并使用它并用实际的类初始化它?

1 个答案:

答案 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部分