使用Grails 2.3.7,我在配置文件中设置了一个属性:
foo.bar = ['whatever']
我可以使用Holders
...
Holders.config.foo.bar
为方便起见,我将Holders
放在util方法中:
static getCfgProp(key){
Holders.config.get(key)
}
但是getCfgProp('foo.bar')
不起作用(猜测是因为foo.bar
是嵌套的地图键)。
如果我压扁配置,它会起作用:
static getCfgProp(key){
Holders.getFlatConfig().get(key)
}
..但每次调用方法时都不想这样做。
试过这些,没有用,我必须遗漏一些简单的
Holders.config."${key}"
Holders.config."$key"
Holders.config.getProperty(key)
Holders.config.(key)
答案 0 :(得分:1)
这是我用于显示配置变量值(通过表单输入):
grailsApplication.config.flatten()."${it}"
其中${it}
是输入字符串。由于flatten()
方法,这适用于非嵌套和嵌套键。
Holders.getFlatConfig()
的等值,所以可能没用。不知道为什么你
每次调用方法时都不想这样做
性能?你有基准吗?
答案 1 :(得分:0)
这对我使用 grails-2.5.6 很有效:
Holders.config[key].subkey.subsubkey...
Holders.config[key][subkey].subsubkey...
// for Holders.config.foo.bar.zet
Holders.config['foo'].bar.zet
Holders.config['foo']['bar'].zet
Holders.config['foo']['bar']['zet']