我正在开发我的第一个Grails插件。它必须访问一个web服务。该插件显然需要webservice url。在没有将其硬编码到Groovy类的情况下配置它的最佳方式是什么?对于不同的环境使用不同的配置会很好。配置Grails插件
9
A
回答
7
如果它只有一个小(阅读:一个项目)配置选项,它可能更容易在属性文件中啜泣。如果有一些配置选项,并且其中一些应该是动态的,我会建议做什么Acegi安全插件做 - 也许增加一个文件到/grails-app/conf/plugin_name_config.groovy。
额外的好处是用户可以执行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
13
您可能想要保持简单(tm)。您可以直接在Config.groovy中定义URL(包括每个环境设置),并根据需要使用grailsApplication.config(大多数情况下)或ConfigurationHolder.config对象(请参阅details in the manual)从插件中访问它。
作为额外的好处,该设置也可以在标准Java属性文件或grails.config.locations中指定的其他配置文件中定义。
例如Config.groovy中
// This will be the default value...
myPlugin.url=http://somewhe.re/test/endpoint
environments {
production {
// ...except when running in production mode
myPlugin.url=http://somewhe.re/for-real/endpoint
}
}
后,在你的插件提供的
import org.codehaus.groovy.grails.commons.ConfigurationHolder
class MyPluginService {
def url = ConfigurationHolder.config.myPlugin.url
// ...
}
相关问题
- 1. Grails 3插件配置
- 2. 四郎Grails的插件 - 配置
- 3. 覆盖插件的Grails配置
- 4. 使用Nexus Repository配置Grails插件
- 5. Grails的jQuery的UI插件配置
- 6. Grails邮件端口配置
- 7. Grails 3列表插件列表配置文件
- 8. 使用Grails 3的邮件插件配置
- 9. Grails 2.2.1不是阅读插件配置文件
- 10. Grails log4j配置
- 11. 配置log4j grails
- 12. 如何为一个grails插件配置log4j?
- 13. 的Grails不能引用称为配置域类的插件,
- 14. 配置grails spring安全插件与documentdb一起工作
- 15. 如何配置grails插件的日志记录?
- 16. 如何在grails 3中配置quartz插件?
- 17. Grails&Nexmo插件
- 18. jQuery Grails插件
- 19. maven插件配置
- 20. Tomcat/Apache/Grails配置
- 21. Grails - 模式配置
- 22. 更改Grails插件的默认位置
- 23. 配置文件路径动态Grails中
- 24. Grails配置文件:最佳实践
- 25. Grails外部配置文件路径
- 26. 禁用Grails插件
- 27. DocumentDB的Grails插件
- 28. GRAILS插件错误
- 29. Grails日历插件
- 30. Swaggydoc插件grails 3.2.1
奇怪的主意,有单独的配置文件只是一个物业服务,'Config.groovy'应使用该属性。 – tig 2013-02-11 01:40:54
@tig AFAIK,当插件被打包时省略'Config.groovy',而不是测试插件而不是配置它,不是? – peterp 2013-07-01 15:36:37