grails - 如何在帮助类中使用 Grails 服务

标签 grails grails-services

我在 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/

相关文章:

grails - Grails onLoad()审核

Grails 不保留我的数据库数据

angularjs - 重定向前显示 Angular 模板

grails - Grails 3 Bootstrap -服务不会创建数据库条目

chalice 3 : ServletContext is coming null in grails service

unit-testing - 为什么添加grails服务单元测试会破坏 Controller 单元测试?

grails - 在 Grails Controller 中设置 session 变量

grails - Grails创建内部服务类的实例

maven-2 - 清除Grails依赖项缓存