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