2009-06-08 10 views
10

Scala'daki özelliklerin en verimli yolunun ne olduğunu bilmek istiyorum. Java'da gazillion özellik dosyaları, xml dosyaları ve diğer yapılandırma dosyaları türünden bıktım ve Scala'da daha verimli olan bu işleri ele almak için "en iyi uygulama" olup olmadığını merak ediyorum?Scala'da taşıma özellikleri

cevap

2

DÜZENLEME https://github.com/typesafehub/config

ORIGINAL (muhtemelen çok faydalı değil) türgüvenli yapılandırma size yapılandırma için basit ve güçlü bir çözüm sunar Scala kodunun kendisiyle yapılandırabilirsiniz. "

Scala'nın çalışma zamanı bağlama işlemi, sınıfların çalışma zamanında değiştirilmesine izin verir ve bu dillerin genel felsefesi, yapılandırma üzerinde sözleşmeyi destekleme eğilimindedir. Gazillion özellik dosyaları ile uğraşmak istemiyorsanız, sadece onlara sahip değilsiniz.

+0

Bu sorunun nasıl yanıtlandığını göremiyorum. Genişleyebilir misin? "Çalışma zamanında takas etme", çalışma ortamı ortamına dinamik olarak yanıt vererek yapılandırmayı ima ediyor gibi görünüyor. Ancak, DB şifreleri veya hangi yöneticinin hata e-postaları alması gibi birçok yapılandırma parametresi çalışma zamanı bilinmemektedir. Hizmet keşif mekanizmaları hakkında konuşabiliriz, ancak bu küçük projeler için çok fazladır ve kendi yapılandırma parametrelerine sahip olacaklar, soruyu yokuş aşağı atmaya başlayacaklar. Bir noktada, programınıza girdi sağlamanız gerekir. Anahtar/değer çiftlerini düzenlerseniz, özellik dosyalarınız ... – DrGary

+0

Çevrenize özgü ayarlar (gerçekten dışlananlar sadece budur) için Java gibi sistem özelliklerine sahip olabilirsiniz: val databaseName = System.getProperty ("myapp.db.name"). Daha sonra bunları başlangıç ​​komut dosyasında yapılandırın ve bunları çalışma zamanına verin: java -Dmyapp.db.name = DeeBee MainClass. Parolalarla ilgili olarak, muhtemelen dosyalarda yer almamalı, ancak uygulama başladığında uygulamanızın size bildirilmesini isteyebilirsiniz. – George

+0

Bir örnek verebilir misiniz? Bu çok kullanışlı geliyor. – Jus12

4

Neden bir gazillion özellik dosyasına sahip olursunuz?

Hala Scala'da gayet iyi çalışan Apache commons Digester'u kullanıyorum. Temel olarak kullanıcı tanımlı bir XML belge haritası kullanıcı tanımlı bir yapılandırıcı sınıfındaki yöntem çağrıları yapmak için çok kolay bir yoludur. Bazı yapılandırma verilerini (uygulama özelliklerinin tersine) ayrıştırmak istediğimde çok yararlı buluyorum.

Uygulama özellikleri için, bağımlılık enjeksiyon altyapısı (Spring gibi) veya yalnızca eski eski özellik dosyaları kullanabilirsiniz. Scala'nın bununla ilgili bir şey sunup sunmadığını görmek isterim.

2

Temiz küçük bir kütüphaneye benzeyen Configgy'a bakın. Yuvalama ve değişiklik bildirimi içerir. Aynı zamanda bir günlük kütüphanesi içerir.

Maalesef, denediğim Mac örneklerinde benim için derleme yapmadı. Daha iyi şansınız varsa ve ne düşündüğünüzü bize bildirin ...

Güncelleme: Mac derleme sorunları çözüldü. Bu post'a bakın. "Scala Programlama" dan aktaran

:

"Scala In -: