Play 2.0 中文资料 - Play 缓存 API
默认的 Cache API 实现是用的 EHCache. 你也可以通过插件来提供自己的缓存实现.
访问 Cache API
缓存 API 由
这是 Play2.0.4 默认注册的插件,其中就包含了 600:play.api.cache.EhCachePlugin 插件。
使用下面简单的 API,你就可以往缓存中存数据了:
之后获取它:
当缓存数据不存在时,还有一个帮助方法在你获取或设置缓存数据给你带来了便利:
缓存 HTTP 响应数据
你可以用标准的 Action 组合简单的创建一个聪明的具体缓存特性的 Action.
或者甚至是这样:
永久链接 https://yanbin.blog/play2-0-tutorials-cn-cache-api/, 来自 隔叶黄莺 Yanbin's Blog
[版权声明]
本文采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。
访问 Cache API
缓存 API 由
play.api.cache.Cache 对象提供. 它需要注册一个缓存插件.注: Cache API 尽力保持自身最小化,而允许插入多种实现. 如果你需要一个更具体的 API, 那就通过你自己的缓存插件来使用它.Unmi 注: EhCachePlugin 的注册方式可以查看 play_x.x.x.jar(比如 $PLAY_HOME/repository/local/play/play_2.9.1/2.0.4/jars/play_2.9.1.jar) 包中的 play.plugins 中的内容:
1100:play.api.i18n.MessagesPlugin
2200:play.api.db.BoneCPPlugin
3300:play.db.ebean.EbeanPlugin
4400:play.db.jpa.JPAPlugin
5500:play.api.db.evolutions.EvolutionsPlugin
6600:play.api.cache.EhCachePlugin
71000:play.api.libs.concurrent.AkkaPlugin
810000:play.api.GlobalPlugin这是 Play2.0.4 默认注册的插件,其中就包含了 600:play.api.cache.EhCachePlugin 插件。
使用下面简单的 API,你就可以往缓存中存数据了:
1Cache.set("item.key", connectedUser)之后获取它:
1val 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}[版权声明]
本文采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。