使用时访问Config.groovy属性时 grailsApplication.config.myapp.something
是否有可能以某种方式以编程方式构建属性键?例如grailsApplication.config.myapp. + somethingVar.toString()
Groovy允许您使用GString表达式进行属性访问,所以
grailsApplication.config.myapp."${somethingVar}"
Run Code Online (Sandbox Code Playgroud)
只要somethingVar不包含任何点,你就会做你想做的事.如果你有一个包含整个配置键的变量,包括点,那么你可以使用flatConfig:
def key = "myapp.something"
def value = grailsApplication.flatConfig."${key}"
Run Code Online (Sandbox Code Playgroud)
或者如果变量是"路径"的一部分而不是整体:
def key = "some.thing"
def value = grailsApplication.flatConfig."myapp.${key}" // gives myapp.some.thing
Run Code Online (Sandbox Code Playgroud)
或者你可以flatConfig通过使用技巧来避免inject
def key = "some.thing"
def value = key.split(/\./).inject(grailsApplication.config.myapp) { co, part ->
co."${part}"
}
Run Code Online (Sandbox Code Playgroud)
该inject方法为我们迭代的数组中的每个项调用一次闭包,每次传入最后一次迭代返回的值(我称之为coa ConfigObject)和此迭代的值(part).总体结果inject是最后一次迭代返回的值.
| 归档时间: |
|
| 查看次数: |
526 次 |
| 最近记录: |