我在 Grails 2.4
中创建了一项服务服务部分。在 Controller 中,它使用依赖注入(inject)并自动初始化。我想使用相同的服务说ClassifiedService
来自 src/groovy
中定义的自定义助手类文件夹。
问题一 :我应该直接调用服务如下:
ClassifiedService classifiedService = new ClassifiedService()
如果我尝试使用 Grails 的依赖注入(inject),如下所示,该对象始终为空。
def classifiedService
问题2 : 是否建议为Service方法创建一个接口(interface)并使用它并用实际的类对其进行初始化?
最佳答案
您可以将您的助手类添加到 conf/spring/resources.groovy
:
import foo.bar.MyHelperClass
beans = {
myHelperClass(MyHelperClass)
}
这将创建一个名为
myHelperClass
的 bean与类 MyHelperClass
.此 bean 中的所有字段都是 Autowiring 的(依赖注入(inject)自动发生)。在此之后,您可以将服务依赖添加到
myHelperClass
使用def classifiedService
您还可以将帮助程序类注入(inject) Controller 和服务。
如果您需要访问 Controller /服务之外的帮助程序类,您可以使用
def helper = grailsApplication.mainContext.getBean('myHelperClass')
见spring Grails 文档中的部分以获取更多详细信息
关于grails - 如何在帮助类中使用 Grails 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24183057/