我有配置变量(在application.yml中(作为:
xyz:
exception.emails: ['abc@gmail.com']
虽然在本地获取它工作正常,但在部署战争后,我得到的配置变量为:
xyz: [
exception: [
emails[
0
]: abc@gmail.com
]
]
我把它拉为:
def email = Holders.config.grails.xyz.exception.emails
我实际上对这项工作感到惊讶,因为我认为查看默认应用程序.yml 时这不是正确的 yml 语法,他们指定了一个用户代理列表,如下所示:
grails:
mime:
disable:
accept:
header:
userAgents:
- Gecko
- WebKit
- Presto
- Trident
就我个人而言,我喜欢使用application.groovy并使用像这样的时髦语法:
grails {
mime {
disable {
accept {
header {
userAgents:
['Gecko', 'WebKit', 'Presto', 'Trident']
}
}
}
它可能有点过时了,但这里有一个将application.yml转换为application.groovy的示例:https://github.com/virtualdogbert/Grails3Tutorial/blob/step_01_settings_yml_to_groovy/grails-app/conf/application.groovy
另请注意,过去您可以从 application.groovy 运行代码,但是如果您有任何导入,它们将不起作用,因为 application.yml/groovy 适用于 cli(pre runtime(,因此作为解决方法,您还可以指定 runtime.groovy,您可以在其中进行导入。如果你加倍努力并编写一个插件,你可以指定一个plugin.groovy,来设置默认值。