在grails中注入服务

时间:2014-05-15 06:28:13

标签: grails groovy

如何将服务注入控制器和域?

我是grails的新手,无法在线查找此信息。

4 个答案:

答案 0 :(得分:8)

在控制器

def springSecurityService

并在域

transient springSecurityService
static transients = ['springSecurityService']

试试这个。

答案 1 :(得分:3)

Grails中的依赖注入类似于默认情况下自动装配"约定配置"。 配置规定如果您已在内部定义了服务类。

  

右键点击>新的groovy类>给出一个像SourceService.groovy这样的名字。

在此文件夹和子文件夹下

  

yourapplication / services / SourceService.groovy

看起来像:

class SourceService {

def serviceMethod(){

//do some work here
}

}

文件夹,配置将处理这个用作依赖注入bean的普通bean定义为spring和struts应用程序。

当你来使用它时:

您始终必须将SourceService的变量声明为camelCase,与/ services文件夹下的SourceService.groovy文件相同。确定。

如果您想在您的域或控制器类中调用服务,请说明。

def sourceService  //most usual method // see name as same as service class

SourceService sourceService // or this way as suggested on this post 

def  login(){

//the use your service with no other requirements
sourceService.serviceMethod() // bam!

}

答案 2 :(得分:2)

依赖注入可以使用def和serviceName完成,但我建议使用静态类型。

如果您有UserService,那么您应该使用控制器,域名和其他服务

UserService userService

这将为您提供Groovy静态类型检查和速度的优势,这将使您免于浪费时间进行调试和测试。

基本上就像你知道类型使用那些静态类型,如果你不知道去def。

答案 3 :(得分:1)

使用Spring依赖注入通过grails自动为您完成依赖注入 - 所以您需要做的就是使用以下命令在控制器/域文件中定义bean(服务名称):

def serviceName

然后,您可以从此对象调用服务方法。点击这里阅读官方grails文档中的更多内容: here

相关问题