2014-06-12 13 views
0

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

问题1:我应该直接调用如下服务:

ClassifiedService classifiedService = new ClassifiedService() 

如果我尝试使用的Grails的依赖注入,如下面的对象始终是零。

def classifiedService 

问题2:建议创建的服务方法的接口,并使用它,并用实际的类初始化呢?

回答

2

可以辅助类添加你conf/spring/resources.groovy

import foo.bar.MyHelperClass 

beans = { 
    myHelperClass(MyHelperClass) 
} 

这将创建一个与MyHelperClass类名为myHelperClass豆。该bean中的所有字段都是自动装配的(依赖注入自动发生)。

这之后您可以使用

def classifiedService 

您也可以注入辅助类为控制器和服务添加该服务依赖于myHelperClass。 如果您需要访问辅助类以外的控制器/服务,您可以使用

def helper = grailsApplication.mainContext.getBean('myHelperClass') 

见Grails文档中更多细节

+1

spring部分有没有必要做'豆获得实例。 autowire ='byName''业务。这在默认情况下发生。你可以做'myHelperClass(MyHelperClass)'。此外,让“类”这个词成为bean名称的一部分是一件奇怪的事情,但它会起作用。 –