如何使用外部服务作为Grails应用程序配置的源?

时间:2012-05-10 14:33:43

标签: grails configuration groovy

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服务作为配置数据的来源,如何实现?

2 个答案:

答案 0 :(得分:1)

回答第二个问题:您可以在BootStrap.groovy初始化闭包中执行此操作,因为基本上,它允许您执行任何代码:

// 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

改为配置。

答案 1 :(得分:0)

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

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