【发布时间】:2013-09-11 05:01:51
【问题描述】:
这通常是一个直截了当的问题,但我不完全确定如何在 Scala 中解决这个问题,因为它是类型敏感的。我有一堂课,我在其中设置了与我的 MongoDB 实例的简单连接。现在在本地,我只是注释掉生产配置行并取消注释本地/开发行的糟糕想法。下面是每一个的样子:
// 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
}
}
就获取传入的数据库名称而言,这很简单——它只是从配置文件中获取一个字符串。我想不出一个干净的解决方案的地方是如何处理我使用 ServerAddress 实例列表来初始化 MongoConnection() 而不是在本地/开发设置中将任何列表传递给 MongoConnection 的事实。
你如何在这里使用像 typesafe 的配置这样的工具?我假设我可以将一个空列表/数组传递给 MongoConnection() 用于本地数据库连接,但我不完全确定如何在不修改 mongoDb 函数的情况下配置生产数据库。我一直在寻找这样的工具来帮助我完成这个过程:https://github.com/typesafehub/config
【问题讨论】:
标签: scala configuration scalatra typesafe