2009-06-08 15 views
10

Scalaでプロパティを処理する最も効率的な方法は何ですか?私はgazillionプロパティファイル、XMLファイル、およびJavaの他のタイプの設定ファイルを持っているのにうんざりしていて、Scalaでもっと効率的な方法を扱う "ベストプラクティス"があるのだろうかと疑問に思いますか?Scalaでのプロパティの処理

答えて

2

EDIT https://github.com/typesafehub/config

ORIGINAL(おそらく非常に有用ではない)タイプセーフの設定は、あなたの構成のためのシンプルかつ強力なソリューションを提供しますScalaコード自体で設定することができます。クラスは、実行時にスワップされるために

Scalaの実行時リンクが可能となり、これらの言語の一般的な考え方は、設定より規約を好む傾向があります。あなたがgazillionプロパティファイルを扱いたくなければ、それらを持っていないだけです。

+0

私はその質問にどのように答えているのか分かりません。あなたは拡大できますか? "実行時のスワップ"は、実行時環境に動的に応答することによって構成を暗示しているようです。しかし、DBパスワードや管理者がエラーメールを受け取るなど、多くの設定パラメータはランタイムでは不明です。 サービス発見メカニズムについては言えるかもしれませんが、それは小規模なプロジェクトにとっては不幸なことです。 ある時点で、プログラムに入力を提供する必要があります。 – DrGary

+0

環境固有の設定(実際には外部化された唯一のものである必要があります)では、Javaのようなシステムプロパティを以下のように得ることができます: val databaseName = System.getProperty( "myapp.db.name")。 javaの-Dmyapp.db.name = DeeBee MainClass:あなたは、あなたの起動スクリプトでこれらを設定し、そのようなランタイムにそれらを与える 。 パスワードに関しては、ファイルにパスワードを入れないようにするべきですが、起動時にプロンプ​​トを出すようにすることができます。 – George

+0

例を挙げることができますか?これは非常に便利ですね。 – Jus12

4

何故gazillionプロパティファイルがありますか?

私はまだScalaで完璧にうまく機能はApache CommonsのDigesterを、使用しています。基本的には、ユーザー定義のXML文書を、ユーザー定義のコンフィグレータクラスのメソッド呼び出しにマップする非常に簡単な方法です。私は、(アプリケーションのプロパティではなく)いくつかの設定データを解析したいときに非常に便利です。

は、アプリケーションの性質のために、あなたは(春のような)依存性注入フレームワークあるいは単なる古いプロパティファイルを使用する場合がありますどちらか。私はScalaがこれに加えて何かを提供しているかどうかを知ることにも興味があります。

2

チェックアウトConfiggy小ぎれいなライブラリのように見えました。ネストと変更通知が含まれます。ロギングライブラリも含まれています。

残念ながら、私が試したMacのインスタンスでは、私のためにコンパイルされませんでした。解決のMacコンパイルの問題:あなたはより良い運と何を考えて...

アップデートを持っている場合は、私たちを知ってみましょう。これはpostを参照してください。 "Scalaではプログラミング" から引用

「Scalaで - :

関連する問題