我想在我的 Play Framework 项目中使用 Anorm 作为 DB 库和 Scaldi 作为 DI。但是现在我无法注入(inject)数据库,因为在最新的游戏框架中,我们不能再使用 DB.getConnection("datasource") 了。
你们中的任何人都可以解释如何将 NamedDatabase 转换为 scaldi 环境?
顺便说一句,这是我的代码片段如何在 play scala 中使用 NamedDatabase。
class MembershipSqlStorage @Inject() (@NamedDatabase("membership") db: Database)
它有效。
谢谢
最佳答案
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 插件添加到您的依赖项中:
libraryDependencies++= Seq(
数据库,
"com.typesafe.play"%% "异常"% "2.5.1"
)
第一的,
“导入异常。_”
然后简单地使用 SQL 对象来创建查询。您需要一个连接来运行查询,您可以在 DI 的帮助下从 play.api.db.DB 助手中检索一个 -
database.withConnection { 隐式 c =>
val 结果:Boolean = SQL("Select 1").execute()
}
要在 play 应用程序中添加 Scaldi 支持,您需要在 build.sbt 中包含 scaldi-play:
libraryDependencies += "org.scaldi"%% "scaldi-play"% "0.5.15"
还有 https://github.com/playframework/anorm
关于database - 如果我们使用特定的数据源,如何在 Play 框架(Scala、Scaldi)中注入(inject)数据库?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43828220/