【发布时间】:2016-10-09 22:53:40
【问题描述】:
我有一个 Play 2.5.3 应用程序,它使用 Slick 从 DB 读取对象。 服务类的构建方式如下:
class SomeModelRepo @Inject()(protected val dbConfigProvider: DatabaseConfigProvider) {
val dbConfig = dbConfigProvider.get[JdbcProfile]
import dbConfig.driver.api._
val db = dbConfig.db
...
现在我需要一些独立的 Scala 脚本来在后台执行一些操作。我需要连接到其中的数据库,并且我想重用我现有的服务类来从数据库中读取对象。
要实例化 SomeModelRepo 类的对象,我需要传递一些 DatabaseConfigProvider 作为参数。我试着跑了:
object SomeParser extends App {
object testDbProvider extends DatabaseConfigProvider {
def get[P <: BasicProfile]: DatabaseConfig[P] = {
DatabaseConfigProvider.get("default")(Play.current)
}
}
...
val someRepo = new SomeModelRepo(testDbProvider)
但是我有一个错误:“(Play.current)”行中的“没有启动的应用程序”。此外,对象 Play 中的当前方法已被弃用,应替换为 DI。
有没有办法在独立对象 SomeParser 中初始化我的 SomeModelRepo 类对象?
最好的问候
【问题讨论】:
-
请注明Play版本
-
是2.5.3。我将此信息添加到问题中。
标签: scala slick playframework-2.5