如果我们使用特定的数据源,如何在Play Framework(Scala,Scaldi)中注入数据库?

mad*_*eja 5 database dependency-injection playframework scaldi

我想在我的play框架项目中使用Anorm作为DB库,将Scaldi作为DI.但是现在我无法注入数据库,因为在最新的游戏框架中,我们不能再使用DB.getConnection("datasource")了.

你们中的任何人都可以解释如何将NamedDatabase告知scaldi环境?

顺便说一句,这是我的代码snipet如何在Play scala中使用NamedDatabase.

class MembershipSqlStorage @Inject() (@NamedDatabase("membership") db: Database)
Run Code Online (Sandbox Code Playgroud)

它的工作原理.

谢谢

jee*_*dal -1

PlayFramework 为 Anorm DB 库 Scaldi DI 提供有用的文档。

您可以参考:

https://www.playframework.com/documentation/2.6.x/Tutorials

https://www.playframework.com/documentation/2.6.x/PlaySlick

您需要将 Anorm 和 JDBC 插件添加到您的依赖项中:

库依赖项 ++= Seq( jdbc, "com.typesafe.play" %% "anorm" % "2.5.1" )

第一的,

“导入异常._”

然后只需使用 SQL 对象来创建查询。您需要一个连接来运行查询,并且您可以在 DI 的帮助下从 play.api.db.DB 帮助程序中检索一个连接 -

数据库.withConnection { 隐式 c =>

val 结果:Boolean = SQL("选择 1").execute()

}

要在 play 应用程序中添加 Scaldi 支持,您需要在 build.sbt 中包含 scaldi-play :

库依赖项 += “org.scaldi” %% “scaldi-play” % “0.5.15”

另外https://github.com/playframework/anorm