如问题所述,在常规来源中使用grails服务的最佳方法是什么?我目前正在使用此代码:

private RoleService roleService;

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

有一个更好的方法吗?

编辑/解决方案:
我使用Spring Dependency Injection解决了它(用@Component注释类,并使用Application.groovy文件中的@ComponentScan注释注册包)

最佳答案

您的代码可能更普通:

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()
    }

}

关于grails - 在Groovy Source文件夹中使用Grails 3服务的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52426927/

10-09 17:18