2012-04-17 117 views
5

我有一个需要调用服务的命令类。Grails:将服务注入命令对象

import org.codehaus.groovy.grails.commons.ApplicationHolder as AH 

class FilterVisitCommand { 

    def accessRightsService = AH.application.mainContext.accessRightsService 
    def customerService = AH.application.mainContext.customerService 
... 
} 

通过应用程序持有者的这种服务定义正在工作,但是depraated。是否有另一种方式让服务被注入?只有“def accessRightsService”不适用于命令类。

+0

为什么'def accessRightsService'不工作? – doelleri 2012-04-18 03:45:53

回答

14

如果您将服务注入到命令对象进行验证,则可能需要通过命令对象引用该服务。

class FilterVisitCommand { 

    def accessRightsService 

    static constraints = { 
     foo(validator: { foo, cmd -> 
      cmd.accessRightsService.bar() 
     }) 
    } 
} 
+0

这应该是这样,并且正是你在1.3.x中做到的。 – 2012-04-18 03:52:01

+0

感谢您的回答。但是我怎样才能通过放在命令类中的方法访问服务呢? – John 2012-04-18 13:32:22