【问题标题】:How to use an external service as a source for Grails app configuration?如何使用外部服务作为 Grails 应用程序配置的来源?
【发布时间】:2012-05-10 14:33:42
【问题描述】:

Grails 文档的Section 3.4 说可以从外部源配置 Grails 应用程序:

grails.config.locations = [
    "classpath:${appName}-config.properties",
    "classpath:${appName}-config.groovy",
    "file:${userHome}/.grails/${appName}-config.properties",
    "file:${userHome}/.grails/${appName}-config.groovy" ]

另外,可以通过指定一个配置脚本的类来加载配置:

grails.config.locations = [com.my.app.MyConfig]

我的问题是:

  1. 您能否举例说明 MyConfig 类实现的样子?从文档中看不太清楚。
  2. 如果我想使用一些外部 JSON REST 服务作为我的配置数据的来源,如何实现?

【问题讨论】:

    标签: grails configuration groovy


    【解决方案1】:

    第二个问题的答案:你可以在 BootStrap.groovy init 闭包中做到这一点,因为基本上,它允许你执行任何代码:

    // Inject grails app
    def grailsApplication
    
    def init = { servletContext ->
        def externalValue = getItUsingRest(someUrl)
        grailsApplication.config.my.custom.var = externalValue
    }
    

    根据您使用的 grails 版本,您可能需要使用

    org.codehaus.groovy.grails.commons.ConfigurationHolde.config
    

    改为进行配置。

    【讨论】:

      【解决方案2】:

      您的应用程序配置实际上可以是一个 Groovy 脚本。因此,任何看起来像您的 Config.groovy 的类都可以充当配置类。在我们的项目中,我们倾向于将配置保留在 grails 应用程序之外,以便可以在不重新编译所有内容的情况下配置应用程序。

      也许this post of mine 会给你一个关于如何使用和加载外部配置文件的提示。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-06-02
        • 2011-06-25
        • 2020-03-16
        • 2019-02-27
        • 1970-01-01
        • 2021-11-10
        • 2012-03-26
        • 1970-01-01
        相关资源
        最近更新 更多