2017-01-21 3 views
1

私はtypesafe設定を使用していましたが、getStringを呼び出した場合にはオプションを返さないことに気付きました。再生設定でオプションが返されるのはなぜですか?

typesafe configを使用する再生設定では、常にOptionsが返されます。

これはもっとスケーラのようなものですか?

はまた、それはこの使用してプレイの設定を行うことが可能です:

val c = config.atPath("myapp-prefix") 

c.getString("some-key") 

私は私の設定で特定のセクションにジャンプし、そこからすべてを参照し始める可能性がどのようにタイプセーフ設定と言っています。

設定が正しく読み込まれなかった場合にアプリをクラッシュさせたいので、オプションを処理する必要はありません。

+0

コンフィギュレーションが見つからない場合に適用されるロジックは実装に残されます(既定のパラメータはどこかにハードコードされたものを返すようなものです)、あなたの場合はクラッシュする( '.get'を実行するだけです)場合によってはクラッシュしたくないかもしれません。 –

答えて

1

Playの設定クラスを見ると、キーが存在するかどうかをチェックして例外の代わりにオプションを返す、typesafe configの上に薄いレイヤーがあることがわかります。

これは例外を回避するスケーラの方法であり、設定に正当なデフォルトを与えることができます。

scaladocを見ると、underlyingフィールドがあり、typesafe configオブジェクトにアクセスできます。

設定が正しくない場合にアプリケーションをクラッシュさせたい場合は、そのアプリケーションを使用してください。

そうでなければ、あなたの設定を取得して、キーがない場合にエラーメッセージを返すために使用することもできます。

for { 
    subConfig <- config.getConfig("myKey") 
    cfg1 <- subConfig.getString("k1") 
    cfg2 <- subConfig.getString("k2")  
} yield { 
    ... insert here the code using cfg1 and cfg2 ... 
} 

キーが見つからない場合は、理解のためにNoneという値が返されます。

関連する問題