Grails配置文件:最佳实践

时间:2009-12-07 09:07:11

标签: grails configuration-files

想知道在为grails应用添加配置键值对时的“最佳做法”是什么。

您是否只需添加到Config.groovy或创建新文件。

我尝试创建一个新的配置文件(Company.groovy),但无法从我的应用程序访问配置道具。然而,当我将属性粘贴到Config.groovy时,我确实可以访问它们....这样可以正常工作,但我不希望Config.groovy变得太大。 另一个问题抬头了。在运行Integration测试时,我发现'test'env无法访问我的新配置属性(值为null)。

我必须做一些根本错误的事情。任何建议将不胜感激。

谢谢, d

2 个答案:

答案 0 :(得分:8)

我不确定是否有具体的最佳做法。我可以告诉你插件只添加一些选项通常重用Config.groovy,但需要更复杂配置的插件(即Nimble)通常有自己的文件可以分开。因此,它实际上取决于您要添加的特定需求和配置量。

如果您检查Config.groovy,您将在几条顶行(此处转载)中看到您可以指定Grails查找配置文件的位置。它会自动为您合并属性和.groovy文件。

// locations to search for config files that get merged into the main config
// config files can either be Java properties files or ConfigSlurper scripts

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

This section in the docs为您描述了选项。

答案 1 :(得分:7)

只需添加上面的答案,如果您将文件命名为MySampleConfig.groovy(只需使用Config.groovy结束文件名),则应将其添加到grailsApplication上下文中,以便您能够引用以下内容:

sample{
       first{
           name = "Italy"
       }
       second{
           name = "Spain"
       }
}

as

grailsApplication.config.sample["first"].name
grailsApplication.config.sample["second"].name

插件我相信行为略有不同,并且需要使用ConfigSlurper或类似物(我很乐意对此进行更正)。

def config = new ConfigSlurper().parse(new File('grails-app/conf/MySampleConfig.groovy').toURL())
println config.sample['first'].name
println config.sample['second'].name