これは通常はまっすぐな問題ですが、型の影響を受けているので、これをScalaでどのように解決するかは十分にはわかりません。 MongoDBインスタンスへの簡単な接続を設定するクラスがあります。現時点ではローカルで、私はプロダクションの設定行をコメントアウトし、ローカルの/ devのコメントを外すという凄い考え方をしています。ここでは、各1は次のようになります。限りで渡されたデータベース名の取得などでtypesafeの設定を使用してデータベース接続を管理する
// production
object MongoReplicaConnection {
def mongoDb = {
val addresses = List(new ServerAddress("10.1.1.2" , 27017), new ServerAddress("10.1.1.3" , 27017), new ServerAddress("10.1.1.4" , 27017))
val mongoConn = MongoConnection(addresses)
val db = mongoConn("mydb")
db
}
}
// local development
object MongoReplicaConnection {
def mongoDb = {
val mongoConn = MongoConnection()
val db = mongoConn("mydb_local")
db
}
}
、それは簡単だ - それだけで設定ファイルから文字列をつかみました。 MongoConnection()を初期化するためにList of ServerAddressインスタンスを使用することと、ローカル/ devセットアップでListをMongoConnectionに渡さないことを処理する方法は、きれいなソリューションを考えることができないところです。
ここでtypesafeの設定のようなツールを使用するにはどうすればよいですか?私は空のリスト/配列をローカルdb接続のためにMongoConnection()に渡すことができると仮定していますが、mongoDb関数を変更せずに本番データベースをどのように設定できるかは完全にはわかりません。私はこのようなプロセスを手助けするためのツールを探しています:https://github.com/typesafehub/config
ようになりますが、あなただけのMongoConnectionにリストを渡すことはできませんので、それは動作しません。 ServerAddressインスタンスのリストが必要です。 – randombits
私はあなたの要求を正しく受けたかどうかはわかりません。私はこのソリューションを少し修正しました。構成ファイル内でユーザー定義のクラス/タイプを使用することはできません。 –