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")
有一个助手方法可以帮你取出或设置值,如果该值不存在的话:
1val user: User = Cache.getOrElseAs[User]("item.key") { 2 User.findById(connectedUser) 3}
缓存HTTP响应
你很容易通过标准的Action组合智能的缓存action。
注意:Play HTTP Result 实例可以安全的缓存而稍后重用。
Play 提供了一个内建的函数针对标准情形:
1def index = Cached("homePage") { 2 Action { 3 Ok("Hello world") 4 } 5}
或者甚至:
1def userProfile = Authenticated { user => 2 Cached(req => "profile." + user) { 3 Action { 4 Ok(views.html.profile(User.find(user))) 5 } 6 } 7}