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

标签 database dependency-injection playframework scaldi

我想在我的游戏框架项目中使用 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( jdbc, "com.typesafe.play"%% "anorm"% "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 Framework(Scala,Scaldi)中注入(inject)数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43828220/

相关文章:

.net - 在 HTML Helpers 中使用 CaSTLe Windsor 进行依赖注入(inject)

c# - 使用 CaSTLeWindsor 2.5.1.0 指定要在 ctor 注入(inject)中使用的依赖项

android - IntentService 的依赖注入(inject)不起作用

java - 使用 Play 同时运行计划作业!框架

java - Play Framework JPA : how to implement one-to-many relationship?

java - 从playframework 2.0.8迁移到2.1.0错误无法构建EntityManagerFactory

mysql - id 没有正确递增

mongodb - 设置 MongoDB 数据库配额 (SIZE)

php - 创建标签数据库

mysql 比较列