2009-06-08 22 views
10

Chciałbym wiedzieć, jaki jest najbardziej efektywny sposób postępowania z nieruchomościami w Scali. Jestem zmęczony posiadaniem plików własnościowych gazillion, plików xml i innych typów plików konfiguracyjnych w Javie i zastanawiam się, czy istnieje "najlepsza praktyka", aby poradzić sobie z tymi bardziej wydajnymi w Scali?Obsługa nieruchomości w Scala

Odpowiedz

2

EDIT: Typesafe config daje proste i wydajne rozwiązanie do konfiguracji - https://github.com/typesafehub/config

oryginalne (ewentualnie nie bardzo przydatne):

Cytując "Programowanie w Scala":

„w Scala , możesz skonfigurować za pomocą samego kodu Scala. "

Łączenie w czasie wykonywania Scala pozwala na zamianę klas w czasie wykonywania, a ogólna filozofia tych języków ma tendencję do faworyzowania konwencji nad konfiguracją. Jeśli nie chcesz zajmować się plikami własności gazillion, po prostu ich nie masz.

+0

Nie widzę, jak to odpowiada na pytanie. Czy możesz rozwinąć? "Zamiana w czasie wykonywania" wydaje się implikować konfigurację poprzez dynamiczną reakcję na środowisko wykonawcze. Jednak wiele parametrów konfiguracyjnych jest nieznanych dla środowiska wykonawczego, takich jak hasła do bazy danych lub administrator otrzymuje komunikaty o błędach. Możemy mówić o mechanizmach wykrywania usług, ale to jest przesada dla małych projektów i będą miały własne parametry konfiguracyjne, kopiąc pytanie w dół. W pewnym momencie musisz podać dane wejściowe do swojego programu. Jeśli uporządkujesz je w pary klucz/wartość, masz pliki właściwości ... – DrGary

+0

W przypadku ustawień specyficznych dla środowiska (które naprawdę powinny być jedynymi, które są uzewnętrzniane) możesz uzyskać właściwości systemu, takie jak w Javie, w ten sposób: val databaseName = System.getProperty ("moja_nazwa_pliku_aplikacji"). Następnie należy je skonfigurować w skrypcie startowym i przekazać do środowiska wykonawczego w następujący sposób: java -Dmyapp.db.name = DeeBee MainClass. Co do haseł, prawdopodobnie nie powinno ich być w plikach, ale może to oznaczać, że aplikacja wyświetla monit o podanie hasła podczas uruchamiania. – George

+0

Czy możesz podać przykład. Brzmi bardzo przydatny. – Jus12

4

Po co miałbyś pliki własności gazillion?

Nadal używam Apache commons Digester, która działa doskonale w Scali. Zasadniczo jest to bardzo prosty sposób tworzenia zdefiniowanej przez użytkownika mapy dokumentów XML na wywołania metod w zdefiniowanej przez użytkownika klasie konfiguratora . Uważam, że jest to niezwykle przydatne, gdy chcę przeanalizować niektóre dane konfiguracyjne (w przeciwieństwie do właściwości aplikacji).

Dla właściwości aplikacji można użyć struktury zależności wtrysku (np. Spring) lub po prostu starych plików właściwości. Byłbym też zainteresowany, aby zobaczyć, czy Scala oferuje coś na ten temat.

2

Zapoznaj się z Configgy, która wygląda jak schludna mała biblioteka. Obejmuje zagnieżdżanie i powiadomienia o zmianie. Zawiera także bibliotekę rejestrowania.

Niestety, nie skompilowałem się dla mnie na komputerach Mac, których próbowałem. Daj nam znać, jeśli masz więcej szczęścia i co myślisz ...

Aktualizacja: rozwiązane problemy z kompilacją Mac. Zobacz ten post.

Powiązane problemy