Tôi muốn biết cách xử lý tài sản hiệu quả nhất trong Scala là gì. Tôi mệt mỏi vì có các tệp thuộc tính gazillion, các tệp xml và các loại tệp cấu hình khác trong Java và tự hỏi liệu có "thực hành tốt nhất" để xử lý những ứng dụng này hiệu quả hơn trong Scala không?Thuộc tính xử lý trong Scala
Trả lời
EDIT: typesafe cấu hình cung cấp cho bạn một giải pháp đơn giản và mạnh mẽ để cấu hình - https://github.com/typesafehub/config
ORIGINAL (có thể không phải là rất hữu ích):
Trích dẫn từ "Lập trình trong Scala":
"Trong Scala , bạn có thể cấu hình thông qua mã Scala. "
Liên kết thời gian chạy của Scala cho phép các lớp được hoán đổi vào thời gian chạy và triết lý chung của các ngôn ngữ này có xu hướng ưu tiên hơn so với cấu hình. Nếu bạn không muốn xử lý các tệp thuộc tính gazillion, chỉ cần không có chúng.
Tại sao bạn có tệp thuộc tính gazillion?
Tôi vẫn đang sử dụng dấu phẩy Apache Digester, hoạt động hoàn toàn tốt ở Scala. Về cơ bản, đây là cách dễ dàng để tạo bản đồ tài liệu XML do người dùng định nghĩa cho các cuộc gọi phương thức trên lớp cấu hình do người dùng xác định. Tôi thấy nó cực kỳ hữu ích khi tôi muốn phân tích một số dữ liệu cấu hình (trái ngược với các thuộc tính ứng dụng).
Đối với thuộc tính ứng dụng, bạn có thể sử dụng khung tiêm phụ thuộc (như Spring) hoặc chỉ các tệp thuộc tính cũ đơn giản. Tôi cũng muốn được quan tâm để xem nếu Scala cung cấp bất cứ điều gì trên đầu trang này, mặc dù.
Khám phá Configgy trông giống như một thư viện nhỏ gọn gàng. Nó bao gồm làm tổ và thay đổi thông báo. Nó cũng bao gồm một thư viện khai thác gỗ.
Thật không may, nó không biên dịch cho tôi trên các phiên bản Mac mà tôi đã thử. Hãy cho chúng tôi biết nếu bạn có may mắn hơn và những gì bạn nghĩ ...
Cập nhật: giải quyết vấn đề biên dịch Mac. Xem này post.
- 1. Xử lý các thuộc tính xml tùy chọn trong Scala
- 2. Cách xử lý các thuộc tính tùy chỉnh trong AutoMapper
- 3. jQuery: xử lý một khoảng trống trong thuộc tính id
- 4. Xử lý đồng thời trong Scala
- 5. Weka, SimpleKMeans không thể xử lý các thuộc tính chuỗi
- 6. Xử lý C# Các thuộc tính không được rỗng
- 7. Các thuộc tính được tiêm phải được xử lý?
- 8. Scala: XML Thuộc tính phân tích
- 9. Mẫu POJO/JavaBean được xử lý như thế nào trong Scala?
- 10. Backbone.JS xử lý các mô hình với các thuộc tính được tính như thế nào
- 11. Tôi làm cách nào để bản ghi hoạt động xử lý các thuộc tính ảo như thuộc tính thực?
- 12. Làm thế nào để xử lý các thuộc tính trong ràng buộc chặn
- 13. Nhận giá trị thuộc tính trong mã xử lý sự kiện cho bộ chọn JQuery/CC
- 14. Xử lý các tên thuộc tính thay thế trong Jackson Deserialization
- 15. Xử lý ngoại lệ khi sử dụng tính năng tiêm phụ thuộc trong C# 4.0
- 16. Windows 7: Trình xử lý thuộc tính hoạt động trong Explorer nhưng không phải FileOpenDialog?
- 17. Đối tượng xử lý Giống như từ điển thuộc tính trong C#
- 18. Scala XML: cú đúp thoát trong thuộc tính
- 19. cách đọc các tệp thuộc tính trong scala
- 20. Xử lý chuỗi thời gian chờ và tương lai Scala
- 21. Xử lý các phụ thuộc vòng tròn trong OCaml
- 22. xử lý sự kiện chung chung quá tải tại Scala
- 23. Scala 2.8 xử lý Boolean và java.lang.Boolean đúng cách?
- 24. Xử lý lỗi trong MVC
- 25. Có cách nào để đặt biến tiền xử lý thành giá trị của thuộc tính không?
- 26. Trình xử lý tiền xử lý Xcode phụ thuộc vào biến môi trường
- 27. Các bảng định kiểu Qt có thực sự xử lý các thuộc tính _dynamic_ không?
- 28. Làm thế nào để xử lý các giao thức Objective-C có chứa các thuộc tính?
- 29. Cách xử lý các yêu cầu tính năng thêm phụ thuộc gói mới
- 30. Làm cách nào để xử lý các thuộc tính trên lớp Perl dựa trên SCALAR?
Tôi không thấy cách trả lời câu hỏi. Bạn có thể mở rộng không? "Hoán đổi khi chạy" có vẻ hàm ý cấu hình bằng cách tự động phản hồi môi trường thời gian chạy. Nhưng nhiều thông số cấu hình không được biết đến thời gian chạy, chẳng hạn như mật khẩu DB hoặc quản trị viên nhận được email lỗi. Chúng ta có thể nói về các cơ chế khám phá dịch vụ, nhưng đó là quá mức cần thiết đối với các dự án nhỏ và chúng sẽ có thông số cấu hình riêng, đưa ra câu hỏi xuống dốc. Tại một thời điểm nào đó, bạn cần cung cấp đầu vào cho chương trình của mình. Nếu bạn tổ chức nó thành các cặp khóa/giá trị, bạn có các tệp thuộc tính ... – DrGary
Đối với các cài đặt dành riêng cho môi trường (mà thực sự là những cài đặt duy nhất được bên ngoài), bạn có thể nhận các thuộc tính hệ thống như trong Java, như sau: val databaseName = System.getProperty ("myapp.db.name"). Sau đó, bạn định cấu hình chúng trong tập lệnh khởi động của mình và cung cấp cho chúng thời gian chạy như sau: java -Dmyapp.db.name = DeeBee MainClass. Đối với mật khẩu, có thể bạn không nên có mật khẩu trong tệp, có thể bạn có thể yêu cầu ứng dụng nhắc bạn khi khởi động. – George
Bạn có thể đưa ra một ví dụ không. Điều này nghe rất hữu ích. – Jus12