Play 2中ReactiveMongo的依赖注入问题

时间:2018-04-20 05:48:49

标签: playframework reactivemongo play-reactivemongo

我正在使用Play 2.6和ReactiveMongo 0.13构建一个Web应用程序。但是当我尝试运行应用程序时,我得到了这个输出:

ProvisionException: Unable to provision, see the following errors:

1) No implementation for play.modules.reactivemongo.ReactiveMongoApi was bound.
  while locating play.modules.reactivemongo.ReactiveMongoApi
    for the 2nd parameter of controllers.Employees.<init>(Employees.scala:17)
...

1 error

此错误引用的类是使用此构造函数声明的:

class Employees @Inject() (cc: ControllerComponents,
                           val reactiveMongoApi: ReactiveMongoApi,
                           implicit val materializer: akka.stream.Materializer
                          )

ReactiveMongo已指定,应该被注入。

我在网上看到解决方案是将以下行添加到application.conf

play.modules.enabled += "play.modules.reactivemongo.ReactiveMongoModule"

问题是我做到了,但我仍然得到依赖注入错误。我不知道从哪里开始。

1 个答案:

答案 0 :(得分:0)

我在另一个论坛上获得了如何解决这个问题的帮助。我错过了一个配置选项来选择MongoDB数据库。 Play中的数据库选择选项为db,但ReactiveMongo使用自己的语法。我必须将其添加到application.conf

mongodb.uri="mongodb://localhost/collectionname"

添加该行会导致依赖注入激活。

不得不离开:

play.modules.enabled += "play.modules.reactivemongo.ReactiveMongoModule"

两者都是必需的,即使文档中的第二个