The Play 缓存 API
Play 默认使用EHCache实现缓存API。你也可以自定义插件实现。
访问缓存API
缓存API由play.api.cache.Cache提供。它需要一个已注册的缓存插件。
注意:该API有意最小化设计以便多种实现的插入。如果你需要特别的API,请使用插件提供者的API。
使用该API,你可以保存数据:
Cache.set("item.key", connectedUser)
或稍后取回数据:
val maybeUser: Option[User] = Cache.getAs[User]("item.key")
有一个助手方法可以帮你取出或设置值,如果该值不存在的话:
val user: User = Cache.getOrElseAs[User]("item.key") {
User.findById(connectedUser)
}
缓存HTTP响应
你很容易通过标准的Action组合智能的缓存action。
注意:Play HTTP Result 实例可以安全的缓存而稍后重用。
Play 提供了一个内建的函数针对标准情形:
def index = Cached("homePage") {
Action {
Ok("Hello world")
}
}
或者甚至:
def userProfile = Authenticated { user =>
Cached(req => "profile." + user) {
Action {
Ok(views.html.profile(User.find(user)))
}
}
}