前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring Cache 简介

Spring Cache 简介

作者头像
suveng
发布2019-09-18 14:13:51
5750
发布2019-09-18 14:13:51
举报

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/qq_37933685/article/details/81612585

个人博客:https://suveng.github.io/blog/​​​​​​​

Spring缓存的使用(Cache)

关于缓存,我想你在开发中多多少少都会用到。可能你之间使用一个Map来管理,或者采用了EhCache或者Guava等框架,但是否注意到这些缓存代码是和你的业务代码混在一起的,而且一旦使用了某种缓存的话,想切换一下估计头都要大了。那么正好,本篇就是看一看Spring为我们所提供的解决方案,如何就像我们使用声明式事务一样来使用缓存。

Spring Cache注解

Spring自从3.1版本开始提供了Cache注解,就像使用Spring所提供的事务注解一样,可以业务代码与缓存相关处理剥离,使得我们的代码更专注于业务逻辑。

Spring本身提供的Cache注解有下面几个:

  1. @Cacheable: 该注解表示所注解的方法支持缓存。当所注解的方法被调用时,Spring首先会根据参数从缓存中查找,如果没有则执行相应的方法,否则返回缓存的值;
  2. @CacheEvict: 该注解表示所注解的方法执行后将清空相应缓存;
  3. @CachePut: 该注解表示所注解的方法在执行后能够将执行结果进行缓存,和@Cacheable注解不同的是,它所注解的方法每次都会执行,即使执行的结果在缓存中已经存在;而@Cacheable所注解的方法只有缓存中不存在时才会执行。比如,对于update(User user)这种类型的方法;
  4. @Caching: 当我们需要在一个方法上添加多个缓存注解(如:@CacheEvict@CachePut),或者需要操作多个缓存时,可以使用该注解进行组合;
  5. @CacheConfig: 该注解使用在类声明中,对该类中使用到缓存的方法统一进行配置,如,配置缓存的名称:@CacheConfig("users")

另外,Spring框架从4.1版本后也支持JCache(JSR-107)的标准注解:

  1. @CacheResult: 类似Spring所提供的@Cacheable
  2. @CachePut: 类似Spring所提供的@CachePut
  3. @CacheRemove: 类似Spring所提供的@CacheEvict,不过只支持将方法返回的结果从缓存中清除,如果要清空全部缓存需要使用下面的注解;
  4. @CacheRemoveAll: 清空全部缓存;
  5. @CacheDefaults: 类似Spring所提供的@CacheConfig

虽然,Spring框架对这两种缓存注解都支持,但为了保持代码的可读性,最好在代码中只使用它们中的一个,而不要混用。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年08月12日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Spring缓存的使用(Cache)
    • Spring Cache注解
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档