Как лучше всего использовать службу Grails 3 в папке Groovy Source? - PullRequest
0 голосов
/ 20 сентября 2018

Как указано в вопросе, как лучше всего использовать сервис grails в отличных источниках?В настоящее время я работаю с этим кодом:

private RoleService roleService;

public RoleCommand() {
    this.roleService = (RoleService) Holders.getGrailsApplication().getMainContext().getBean("roleService");
}

Есть ли лучший способ сделать это?

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

Ваш код может быть более интересным:

import grails.util.Holders

class RoleCommand {

    // getter for the service
    def getRoleService() {
        Holders.grailsApplication.mainContext.getBean 'roleService' 
        // or Holders.applicationContext.getBean 'roleService'
    }

    def useTheService() {
       // use the getter method
       def something = roleService.doSomething()
    }

}
0 голосов
/ 20 сентября 2018

Если честно, я бы избегал этого.

Я работал над большим приложением Grails со всеми видами сервисов и командными классами.

Это была одна из ошибок, которую яВначале я думал о создании, но чем больше я развивался, тем больше я осознавал, что нет случаев, когда вам нужно это делать.

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

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

...