使用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/

10-11 11:52