Tôi đang phát triển Grails Plugin đầu tiên của tôi. Nó phải truy cập một webservice. Plugin rõ ràng sẽ cần url webservice. Cách tốt nhất để cấu hình điều này mà không mã hóa cứng nó vào các lớp Groovy là gì? Nó sẽ được tốt đẹp với cấu hình khác nhau cho các môi trường khác nhau.Cấu hình của Grails Plugin
Trả lời
Nếu chỉ có một (đọc: một mặt hàng) nhỏ của nó tùy chọn cấu hình, nó chỉ có thể là dễ dàng hơn để húp trong nộp tài sản. Nếu có một số tùy chọn cấu hình và một số tùy chọn cấu hình nên động, tôi khuyên bạn nên làm những gì mà plugin Acegi Security thực hiện - thêm tệp vào /grails-app/conf/plugin_name_config.groovy có lẽ.
thêm tiền thưởng là người dùng có thể thực thi mã groovy để tính tùy chọn cấu hình của họ (tốt hơn nhiều so với sử dụng tập tin thuộc tính), cũng như có khả năng làm môi trường khác nhau một cách dễ dàng.
séc ra http://groovy.codehaus.org/ConfigSlurper, đó là những gì Grails nội bộ sử dụng để húp configs như 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
Bạn có thể muốn giữ đơn giản (tm). Bạn có thể xác định URL trực tiếp trong Config.groovy-bao gồm mỗi môi trường settings- và truy cập nó từ plugin của bạn như mong muốn bằng grailsApplication.config (trong hầu hết các trường hợp) hoặc một đối tượng ConfigurationHolder.config (Xem thêm details in the manual).
Là một tiền thưởng thêm rằng thiết lập cũng có thể được định nghĩa trong các tập tin bất động sản Java tiêu chuẩn hoặc trên các tập tin cấu hình khác quy định tại grails.config.locations.
ví dụ: trong 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
}
}
sau, trong một dịch vụ được cung cấp bởi các plugin của bạn
import org.codehaus.groovy.grails.commons.ConfigurationHolder
class MyPluginService {
def url = ConfigurationHolder.config.myPlugin.url
// ...
}
- 1. Plugin nội tuyến của Grails: Không thể nâng cấp plugin được cấu hình thông qua BuildConfig.groovy
- 2. Externalizing Grails Cấu hình datasource
- 3. cấu hình giả trong các thử nghiệm của Grails
- 4. Làm cách nào để định cấu hình ghi nhật ký cho plugin grails?
- 5. Grails cách đăng nhập hoạt động của plugin bảo mật
- 6. động Grails Url Mapping cấu hình
- 7. xuất bản plugin Grails
- 8. Plugin Eclipse Grails
- 9. Lập cấu hình một plugin dll
- 10. Vô hiệu hóa plugin Grails
- 11. IntelliJ 11 - Grails SDK không được định cấu hình
- 12. Plugin Grails thêm URLMappings của riêng nó như thế nào?
- 13. Cấu hình chạy IntelliJ cho môi trường Grails
- 14. Làm cách nào để truy cập cấu hình Grails trong Grails 2.0?
- 15. truy vấn plugin tìm kiếm grails
- 16. Cấu trúc plugin của C# DLL
- 17. Phát triển plugin grails hiệu quả
- 18. đặt thời gian chờ của phiên trong Grails Spring Security Core Plugin
- 19. Grails Database Migration vấn đề Plugin
- 20. Chuyển đổi ứng dụng grails thành plugin
- 21. plugin maven scm - url cấu hình-giá trị là gì?
- 22. Maven: Cách định cấu hình native2ascii-maven-plugin
- 23. tùy chọn cấu hình appengine-maven-plugin như cờ jvm
- 24. cobertura-maven-plugin không bao gồm cấu hình
- 25. Định cấu hình Plugin SublimeLinter để sử dụng PHP
- 26. Eclipse Git Plugin: không thể cấu hình Push To Upstream
- 27. Ghi đè cấu hình plugin Maven được xác định trong plugin pluginManagement từ dòng lệnh
- 28. Cấu hình sbt cấu hình
- 29. Làm cách nào để chỉ định thẻ git khi cấu hình của plugin SCM Maven?
- 30. Định cấu hình ghi nhật ký cho plugin maven của Jetty?
ý tưởng lạ để có tập tin cấu hình riêng biệt chỉ dành riêng cho một tài sản, 'Config.groovy' nên được sử dụng cho tài sản đó. – tig
@tig AFAIK, 'Config.groovy' được bỏ qua khi plugin được đóng gói và thay vì thử nghiệm plugin hơn là định cấu hình plugin, phải không? – peterp