2012-05-10 32 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會給你一個關於如何使用和加載外部配置文件的提示。

相關問題