Play-Reactivemongo 0.12.0 angular-seed
При рефакторинге с ReactiveMongo.0.11.1 на ReactiveMongo 0.12.0 со ссылкой на https://github.com/AhmadMelegy/play-silhouette-reactivemongo-angular-seed не удалось выполнить компиляцию:
def configure() {
bind[DB].toInstance
{
import com.typesafe.config.ConfigFactory
import reactivemongo.api.DefaultDB
import scala.concurrent.ExecutionContext.Implicits.global
import scala.collection.JavaConversions._
import scala.concurrent.Future
val config = ConfigFactory.load
val driver = new MongoDriver
val connection = driver.connection(
config.getStringList("mongodb.servers"),
MongoConnectionOptions(),
Seq()
)
connection.database(config.getString("mongodb.db"))
}
Как решить эту проблему?
required: reactivemongo.api.DB
found : scala.concurrent.Future[reactivemongo.api.DefaultDB]
1 ответ
Не рекомендуется
Ты можешь использовать Await
получить результат от Future
и связать это.
рекомендуемые
Используйте "play.modules.reactivemongo.ReactiveMongoModule" http://reactivemongo.org/releases/0.12/documentation/tutorial/play.html
Пример конфигурации:
# The default URI
mongodb.uri = "mongodb://someuser:somepasswd@localhost:27017/foo"
# Another one, named with 'bar'
mongodb.bar.uri = "mongodb://someuser:somepasswd@localhost:27017/lorem"
Пример кода
class MyComponent @Inject() (
val defaultApi: ReactiveMongoApi, // corresponds to 'mongodb.uri'
@NamedDatabase("bar") val barApi: ReactiveMongoApi // 'mongodb.bar'
) {
}
Если вам нужно выполнить собственное связывание, просто посмотрите на этот пример: https://github.com/ReactiveMongo/Play-ReactiveMongo/blob/master/src/main/scala/play/modules/reactivemongo/ReactiveMongoModule.scala