我可以使用ConfigSlurper在类路径中引用配置文件吗?

时间:2011-05-25 15:33:45

标签: grails

我想以多种方式使用配置文件的内容,包括集成测试和我的BootStrap。如果我的配置文件在src / groovy下并且被称为“com.corp.MyConfig.groovy”,我应该将什么传递给ConfigSlurper解析方法?

3 个答案:

答案 0 :(得分:3)

我想会发生的事情是你的Groovy文件被编译并最终成为二进制目录(classpath)中的一个类。而不是尝试通过URL加载它尝试加载脚本类。

Class scriptClass = getClass().classLoader.loadClass('com.corp.MyConfig')
ConfigObject config = new ConfigSlurper().parse(scriptClass)

答案 1 :(得分:2)

如果您的配置文件在类路径上可用,我建议使用ClassLoader.getResource()来获取它:

URL url = MyClass.class.getClassLoader().getResource("com/corp/MyConfig.groovy");
config = new ConfigSlurper().parse(url);

答案 2 :(得分:0)

从POGO您也可以使用:

import grails.util.Holders

class Foo {
    def bar() {
        println(Holders.config.grails.serverURL)
    }
}

来自:How do I get at the goodies in my Grails Config.groovy at runtime?