【发布时间】:2019-11-22 00:32:02
【问题描述】:
我已尝试将 Slick 添加到我的项目中
创建 RoomRepo 类
class RoomRepo @Inject() (dbConfigProvider: DatabaseConfigProvider)(implicit ec: ExecutionContext) extends HasDatabaseConfigProvider[JdbcProfile]{/**...*/}
注入它
class ChatEngine @Inject()(dbRoom: RoomRepo)(socketIO: SocketIO)(implicit mat: Materializer){/**...*/}
ChatEngine 加载了 macwire
trait MyApplication extends BuiltInComponents
with AssetsComponents
with SocketIOComponents {
lazy val dbConfigProvider = wire[DatabaseConfigProvider.get[JdbcProfile]]
lazy val dbRoom = wire[RoomRepo]
lazy val chatEngine = wire[ChatEngine]
lazy val engineIOController: EngineIOController = chatEngine.controller
override lazy val router = {
val prefix = "/"
wire[_root_.router.Routes]
}
override lazy val httpFilters = Nil
}
然后我得到这个错误:
[错误] /MyApplicationLoader.scala:31:59: 类型 get 不是 对象 play.api.db.slick.DatabaseConfigProvider
[错误] 懒惰 val dbConfigProvider = 线[DatabaseConfigProvider.get[JdbcProfile]]
[错误] ^ [错误] /MyApplicationLoader.scala:32:25:找不到类型的值: [play.api.db.slick.DatabaseConfigProvider]
[错误] 懒惰 val dbRoom = wire[RoomRepo]
[错误] ^ [错误] /MyApplicationLoader.scala:33:29:找不到类型的值: [models.RoomRepo]
[错误] 懒 val chatEngine = wire[ChatEngine]
【问题讨论】:
标签: scala playframework slick macwire