2012-05-10 35 views
0

Section 3.4说Grails的应用程序可以从外部源被配置:如何使用外部服务作为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] 

我的问题是:

  1. 你能举个例子说明MyConfig类的实现是怎么样的吗?从文档中不太清楚。
  2. 如果我想使用一些外部JSON REST服务作为我的配置数据源,那么这怎么实现呢?

回答

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 

取而代之。

0

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

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

相关问题