gpt4 book ai didi

grails - 是否可以从Grails中的外部化配置文件加载更多配置文件?

转载 作者:行者123 更新时间:2023-12-02 14:04:12 25 4
gpt4 key购买 nike

假设情况:

我已经从网上下载了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以外的更多配置文件?

最佳答案

您可以在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/"

关于grails - 是否可以从Grails中的外部化配置文件加载更多配置文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7104188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com