【问题标题】:using GrailsApplication in service在服务中使用 GrailsApplication
【发布时间】:2015-01-23 05:57:10
【问题描述】:

所以我对在服务中使用 grailsApplication 进行了大量研究,但它们似乎都不起作用(2.4.4)

这是我尝试使用它的方式

class AddressLookupService {

    def grailsApplication

    def addressLookup(address1, address2, city, state, zip){
        def addressValidationErrors = verifyAddress(
            grailsApplication.config.uspsUserId,
            address1, address2, city, state, zip, '')
        return addressValidationErrors.errDescription
    }
}

我遇到的错误

Cannot get property 'config' on null object

【问题讨论】:

  • 服务在grails-app/service里面吗?
  • 查看this recent answer 了解类似问题。确保 def grailsApplication 是一个类范围变量(字段),而不是在 Spring 不可见的方法或其他范围内。还可以尝试删除您的 target 目录并运行 grails compile 以强制完全清理并重新编译 - 您可能只是不同步。
  • @dmahapatro 是的,服务在 grails-app/services 中
  • @BurtBeckwith grailsApplication 是一个类范围变量(字段)。我还做了一个grails clean,然后是grails refresh-dependencies,但它仍然没有用。我更新了我的问题,显示了整个班级
  • 好的,下一个问题是如何/在哪里调用服务方法?测试?应用程序运行时?

标签: grails


【解决方案1】:

您可以将Holders服务中的类导入为

import grails.util.Holders as H 然后将此支架用作 H.grailsApplication?.config?.uspsUserId

【讨论】:

  • 或只是H.config.uspsUserId
  • 不,避免使用 Holders 类。使用依赖注入
  • 按预期工作,尽管 Igor 关于访问配置是正确的,但这种方式更短。
猜你喜欢
  • 2012-11-12
  • 2023-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多