【发布时间】:2015-09-15 00:32:11
【问题描述】:
我们的应用程序基于 Play 2.4 与 Scala 2.11 和 Akka。 我们的应用程序大量使用缓存。我们使用 Play 的默认 EhCache 进行缓存。
我们目前使用缓存对象(play.api.cache.Cache) 进行缓存
import play.api.Play.current
import play.api.cache.Cache
object SampleDAO extends TableQuery(new SampleTable(_)) with SQLWrapper {
def get(id: String) : Future[Sample] = {
val cacheKey = // our code to generate a unique cache key
Cache.getOrElse[Future[[Sample]](cacheKey) {
db.run(this.filter(_.id === id).result.headOption)
}
}
}
现在,我们计划在 Play 2.4 中利用内置的 Google Guice DI 支持。以下是 Play 2.4 文档提供的示例示例
import play.api.cache._
import play.api.mvc._
import javax.inject.Inject
class Application @Inject() (cache: CacheApi) extends Controller {
}
上面的例子将 dependency 插入到 Scala 类构造函数中。 但是在我们的代码中 SampleDAO 是一个 Scala 对象而不是类。
那么现在是否可以使用 Scala 对象而不是 Scala 类来实现 Google Guice DI?
【问题讨论】:
标签: scala playframework guice ehcache