2012-04-17 125 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