2012-04-17 3 views
5

У меня есть класс команд, которому необходимо вызвать службу.Grails: Inject Service в объект Command

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

class FilterVisitCommand { 

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

Этот вид определения обслуживания с помощью держателя приложения работает, однако, разрознен. Есть ли другой способ, чтобы служба была введена? Только класс «def accessRightsService» не работает для командного класса.

+0

Почему не работает «def accessRightsService»? – doelleri

ответ

0

Плагин Grails rich domain позволяет вводить в эксплуатацию, проверять, ... для обычных классов Groovy.

14

Если вы вводите службу в объект команды для проверки, вам может потребоваться ссылка на службу через объект команды.

class FilterVisitCommand { 

    def accessRightsService 

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

Это должно быть так, и именно так вы сделаете это в 1.3.x. –

+0

Спасибо за ответ. Но как я могу получить доступ к службе в методе, который помещается в класс команд? – John

Смежные вопросы