使用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
是嵌套的 map 关键字)。如果我展平配置,它会工作:
static getCfgProp(key){
Holders.getFlatConfig().get(key)
}
..但是不想每次调用方法时都这样做。
尝试了这些,没有任何作用,我一定缺少一些简单的东西
Holders.config."${key}"
Holders.config."$key"
Holders.config.getProperty(key)
Holders.config.(key)
最佳答案
这就是我用来显示config var值(通过表单输入)的内容:
grailsApplication.config.flatten()."${it}"
其中
${it}
是输入字符串。由于flatten()
方法,这对非嵌套键和嵌套键均适用。编辑:刚意识到这是您的
Holders.getFlatConfig()
的等效项,因此可能没有用。不知道为什么性能?你有基准吗?
关于grails - 使用变量访问Grails Holders中的配置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23860100/