grails - Grails插件的配置

标签 grails plugins config

我正在开发我的第一个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/

相关文章:

mongoose - 如何在 Nestjs 中读取 MongooseModule 上的 .env 文件?

codeigniter - 从 Codeigniter 中的配置文件获取完整数组

grails - 如何从 Grails 3 插件中排除类

grails - scribe oauth linkedin 创建 token

date - Grails匹配日期

vim - 如何在 vim 中自动完成 C 或 C++ 关键字

grails - grails-在hasMany关系上的自定义排序?

android - Cordova - 在 Android 上安装 AdMob 插件失败 (Mac)

plugins - 通过自定义插件在gradle中创建默认项目Jar

linux - 解析 shell 脚本中的配置文件