我已经开始使用 MacWire 对我的 Play 应用程序进行依赖注入,但在尝试注入数据库连接时遇到了问题。
在使用 DI 之前,我的代码如下所示:
DB.withConnection { implicit connection =>
...
}
这在使用 DI 后不再起作用。我得到以下异常:java.lang.InstantiationException: play.api.db.DBApi
.
我的应用程序加载器:
class Loader extends ApplicationLoader {
def load(context: Context) = {
val components = new BuiltInComponentsFromContext(context) with Components
components.application
}
}
应用程序的主要组件:
trait Components extends BuiltInComponents with I18nComponents
with RepositoryModule {
lazy val assets: Assets = wire[Assets]
lazy val router: Router = wire[Routes] withPrefix "/"
}
和存储库模块:
trait RepositoryModule {
lazy val userRepository = wire[UserRepository]
}
如何获取和使用数据库连接池并将其注入以便可以在存储库中使用?