想知道在为grails应用添加配置键值对时的“最佳做法”是什么。
您是否只需添加到Config.groovy或创建新文件。
我尝试创建一个新的配置文件(Company.groovy),但无法从我的应用程序访问配置道具。然而,当我将属性粘贴到Config.groovy时,我确实可以访问它们....这样可以正常工作,但我不希望Config.groovy变得太大。 另一个问题抬头了。在运行Integration测试时,我发现'test'env无法访问我的新配置属性(值为null)。
我必须做一些根本错误的事情。任何建议将不胜感激。
谢谢, d
答案 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