我正在开发我的第一个Grails插件。它必须访问一个Web服务。该插件显然将需要Web服务URL。没有对此进行硬编码到Groovy类中的最佳配置方法是什么?对于不同的环境使用不同的配置会很好。
最佳答案
如果它只是一个很小的(读取:一项)配置选项,则将其添加到属性文件中可能会更容易。如果有一些配置选项,并且其中一些应该是动态的,那么我建议您执行Acegi Security插件的工作-也许将文件添加到/grails-app/conf/plugin_name_config.groovy中。
增加的好处是用户可以执行常规代码来计算其配置选项(比使用属性文件要好得多),并且能够轻松地执行不同的环境。
查看http://groovy.codehaus.org/ConfigSlurper,这是grails在内部使用的,用于配置config.groovy之类的配置。
//e.g. in /grails-app/conf/MyWebServicePluginConfig.groovy
somePluginName {
production {
property1 = "some string"
}
test {
property1 = "another"
}
}
//in your myWebServicePlugin.groovy file, perhaps in the doWithSpring closure
GroovyClassLoader classLoader = new GroovyClassLoader(getClass().getClassLoader())
ConfigObject config
try {
config = new ConfigSlurper().parse(classLoader.loadClass('MyWebServicePluginConfig'))
} catch (Exception e) {/*??handle or what? use default here?*/}
assert config.test.property1.equals("another") == true
关于grails - Grails插件的配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/843216/