Grails中外部配置中的变量

时间:2014-10-15 15:43:55

标签: grails config

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

Config.groovy

    grails {
       server = 'abc.com'
    }

    testing {
       test1 = ${grails.server}
    }

外部配置

    grails {
       server = 'xyz.com'
    }

testing { test1 = ${grails.server} }

我想将test1的值设置为等于grails.server的重写值,但我看到的是test1,原始值为'grails.server'是已分配,而不是外部配置中的重写值。

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

1 个答案:

答案 0 :(得分:0)

如果您希望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会覆盖您的外部配置。