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

如何使用外部服务作为Grails应用程序配置的源?,grails,configuration,groovy,Grails,Configuration,Groovy,Grails文档的一部分说,可以从外部源配置Grails应用程序: grails.config.locations = [ "classpath:${appName}-config.properties", "classpath:${appName}-config.groovy", "file:${userHome}/.grails/${appName}-config.properties", "file:${userHome}/.grails/${appName

Grails文档的一部分说,可以从外部源配置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]
我的问题是:

  • 您能举一个例子说明MyConfig类实现的样子吗?从文件中不太清楚
  • 如果我想使用一些外部JSON REST服务作为配置数据的源,如何实现这一点

  • 回答第二个问题:您可以在BootStrap.groovy init closure中这样做,因为它基本上允许您执行任何代码:

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

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

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