我正在開發我的第一個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插件配置grails插件
- 3. AWS SES,郵件插件和Grails配置
- 4. 四郎Grails的插件 - 配置
- 5. 覆蓋插件的Grails配置
- 6. 使用Nexus Repository配置Grails插件
- 7. 配置Grails的Spring Security的LDAP插件
- 8. 在grails中配置shiro-oauth插件
- 9. Grails的jQuery的UI插件配置
- 10. Grails插件配置不包括
- 11. 通過Spring Security的Grails配置插件grails-ckeditor
- 12. Grails地理位置插件
- 13. Grails郵件端口配置
- 14. 使用Grails 3的郵件插件配置
- 15. Grails 2.2.1不是閱讀插件配置文件
- 16. Grails 3列表插件列表配置文件
- 17. 配置log4j grails
- 18. Grails log4j配置
- 19. Grails內聯插件:無法升級通過BuildConfig.groovy配置的插件
- 20. 可以從(鏈接的)下游插件預配置Grails插件嗎?
- 21. 使用p6spy插件配置Grails 2.0.4和sql分析
- 22. 如何在grails 3中配置quartz插件?
- 23. 配置grails spring安全插件與documentdb一起工作
- 24. grails-spring-security-ldap插件配置LDAP連接超時
- 25. 如何爲一個grails插件配置log4j?
- 26. 爲什麼有兩種方法爲grails配置插件?
- 27. 如何覆蓋Grails中的插件配置?
- 28. Grails:使用「外部配置」獲取插件的數據源
- 29. 的Grails不能引用稱爲配置域類的插件,
- 30. 如何配置grails插件的日誌記錄?
奇怪的主意,有單獨的配置文件只是一個物業服務,'Config.groovy'應使用該屬性。 – tig 2013-02-11 01:40:54
@tig AFAIK,當插件被打包時省略'Config.groovy',而不是測試插件而不是配置它,不是? – peterp 2013-07-01 15:36:37