【问题标题】:Variables in External config in GrailsGrails 外部配置中的变量
【发布时间】:2014-10-15 15:43:54
【问题描述】:

我的 grails 应用程序中有一个外部和内部配置。这里是:

Config.groovy

圣杯{ 服务器='abc.com' } 测试{ test1 = ${grails.server} }

外部配置:

圣杯{ 服务器 = 'xyz.com' } testing { test1 = ${grails.server} }

我想将test1 的值设置为等于grails.server 的覆盖值,但我看到的是test1 的原始值是分配了'grails.server' 而不是覆盖值与外部配置一样。

所以最后我得到了 test1 从配置文件中获得的原始值 ie.'abc.com' 而不是外部配置中覆盖的值,即xyz.com

【问题讨论】:

  • 我看到“这个问题在这里可能已经有了答案:”在问题之上。我还以为是你加的。但看起来这是自动生成的
  • 我真的不明白关闭问题的投票。没有答案可以解决问题。问题的框架也正确。还有什么?

标签: grails config


【解决方案1】:

如果您希望 test1 引用像 grails.server 这样的属性,您可以执行以下操作:

grails {
   server = 'xyz.com'
}

test {
   test1 = ${grails.server}
}

在 ${} 表达式中包含任何属性名称,它将返回该属性的值。现在您的问题令人困惑,因为您谈论覆盖属性,但不清楚您要覆盖哪个属性。如果它是 grails.server 那么这个答案很好。但同样令人困惑的是测试的使用,因为测试是一个环境,但我认为您正在尝试制作一个不暗示环境的抽象示例。

更新:您是如何指定外部配置文件的?您使用的是grails.config.defaults.locations 还是grails.config.locations?如果您使用grails.config.locations,这将允许您的外部配置覆盖 Config.groovy,但如果您使用 grails.config.defaults.locations,那么 Config.groovy 将覆盖您的外部配置。

【讨论】:

  • test 仅用于展示示例。我会更新这个问题。我会试试你的解决方案。
  • 我已更新我的答案以更好地反映您的问题。
  • 我正在覆盖 grails.config.locations
猜你喜欢
  • 2012-11-18
  • 1970-01-01
  • 1970-01-01
  • 2013-10-01
  • 2014-03-14
  • 2012-12-20
  • 2013-12-13
  • 2014-08-23
  • 1970-01-01
相关资源
最近更新 更多