Spring   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了spring – Grails:使用config.groovy中定义的值初始化静态变量大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何使用COnfig.groovy中定义的值初始化静态变量?

目前我有这样的事情:

class Apiservice {
    JSON get(String path) {
        def http = new httpBuilder("${grailsApplication.config.grails.api.server.url}")
        ...
    }
    JSON get(String path,String token) {
        def http = new httpBuilder("${grailsApplication.config.grails.api.server.url}")
        ...
    }
    ...
    JSON post(String path,String token) {
        def http = new httpBuilder("${grailsApplication.config.grails.api.server.url}")
        ...
    }
}

我不想在每个方法中定义http变量(几个GET,POST,PUT和Delete).

我希望将http变量作为服务中的静态变量.

我尝试了这个没有成功:

class Apiservice {

    static grailsApplication
    static http = new httpBuilder("${grailsApplication.config.grails.api.server.url}")

    JSON get(String path) {
        http.get(...)
        ...
    }
}

我得到无法在Null对象上获取@L_489_8@’config’.同样的:

class Apiservice {

    def grailsApplication
    static http

    Apiservice() {
        super()
        http = new httpBuilder("${grailsApplication.config.grails.api.server.url}")
    }

    JSON get(String path) {
        http.get(...)
        ...
    }
}

我也试过没有静态定义,但同样的错误无法在Null对象上获取@L_489_8@’config’:

class Apiservice {

    def grailsApplication
    def http

    Apiservice() {
        super()
        http = new httpBuilder("${grailsApplication.config.grails.api.server.url}")
    }
}

任何线索?

最佳答案
而不是静态,使用实例@L_489_8@(因为服务bean是单例作用域).您无法在构造函数中进行初始化,因为尚未注入依赖项,但您可以使用带注释的@postconstruct方法,该方法将在依赖项注入后由框架调用.

import javax.Annotation.postconstruct

class Apiservice {
  def grailsApplication
  httpBuilder http

  @postconstruct
  void init() {
    http = new httpBuilder(grailsApplication.config.grails.api.server.url)
  }

  // other methods as before
}

大佬总结

以上是大佬教程为你收集整理的spring – Grails:使用config.groovy中定义的值初始化静态变量全部内容,希望文章能够帮你解决spring – Grails:使用config.groovy中定义的值初始化静态变量所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。