Grails - 在 Config.groovy 内访问数据,同时在路径中使用变量

Grails - access data within Config.groovy whilst using variable in path

我知道要从 Config.groovy 文件中访问变量,

grailsApplication.config.someValue.anotherValue

我想在此路径中使用变量,因为我想从配置文件中获取 URL。值 foo 作为参数传递给方法,该方法将根据其他因素使用不同的变量多次调用。

def foo = "anothervalue"
grailsApplication.config.someValue.${ foo }.

我在配置中想要的值的实际路径与第一个实例中的相同。

我试过:

grailsApplication.config.someValue.${ foo }
grailsApplication.config.someValue${ foo }
grailsApplication.config.someValue + "${ foo }"
grailsApplication.config.someValue + ".${ foo }"
grailsApplication.config.someValue + ${ foo }

grailsApplication.config.someValue."${ foo }" 必须有效。

grailsApplication.config returns a groovy.util.ConfigObject like groovy.util.ConfigSlurper.parse() 所以你可以在下面的例子中看到它是如何工作的:

import groovy.util.ConfigSlurper

def configTxt = '''
prop1 {
    prop2 {
        person.name = 'paco'
    }
}
'''

def config = new ConfigSlurper().parse(configTxt)
def foo = "prop2"
println config.prop1."${foo}" // prints [person:[name:paco]]

希望这对您有所帮助,

更自然的是 grailsApplication.config.someValue[ foo ]