假设情况:
我已经从网上下载了Grails应用程序作为WAR文件foo.war
。在文档中,它说我可以将自己的自定义配置放在/foo.groovy
中,因为此路径包含在grails.config.locations
Config.groovy
中。我可以将所有自定义配置转储到该文件中,生活也很好。
怎么样,这是我的问题...... FooApp的配置很大而且毛茸茸,而且我不想把它全部放在一个文件中。我想将其分解为/bar.groovy
和/baz.groovy
以保持组织有序。有没有办法在/foo.groovy
中指定一些内容,以便FooApp还会选择/bar.groovy
和/baz.groovy
并处理它们?
我已经尝试将路径附加到grails.config.locations
中的/foo.groovy
,但Grails不喜欢这样,并在启动时抛出了一个令人讨厌的异常。我不确定采取什么其他方法。
为清晰起见编辑:
grails-app/conf/Config.groovy
看起来像这样:
grails.config.locations = ["file:/foo.groovy"]
现在,无需修改grails-app/conf/Config.groovy
,只修改/foo.groovy
,是否可以加载/foo.groovy
以外的更多配置文件?
答案 0 :(得分:2)
您可以在foo.groovy
:
<强> foo.groovy 强>
port {
to {
somewhere=8080
another {
place=7070
}
}
}
host = new ConfigSlurper().parse(new File("bar.groovy").toURL())
<强> bar.groovy 强>
to {
somewhere="http://localhost/"
another {
place="https://another.place.com/"
}
}
所以在你的应用程序中你有:
assert grailsApplication.config.port.to.somewhere == 8080
assert grailsApplication.config.port.to.another.place == 7070
assert grailsApplication.config.host.to.somewhere == "http://localhost/"
assert grailsApplication.config.host.to.another.place == "https://another.place.com/"