springboot框架学习积累---SpringBoot缓存管理
程序员文章站
2022-05-04 16:23:08
...
springboot框架学习积累—SpringBoot缓存管理
1.环境搭建
2. 默认缓存体验
-
@EnableCaching
:在主启动类上添加这个注解,表示开启SpringBoot基于注解的缓存管理支持@EnableCaching @SpringBootApplication public class Springboot05CacheApplication { public static void main(String[] args) { SpringApplication.run(Springboot05CacheApplication.class, args); } }
-
@Cacheable
:这个注解是对数据操作方法进行缓存管理,将该注解标注在Service类的查询方法上,对查询结果进行缓存(放入springboot的默认缓存中)
,cacheNames:
起一个缓存命名空间 对应缓存唯一标识@Cacheable(cacheNames = "comment") public Comment findCommentById(Integer id){ Optional<Comment> byId = commentRepository.findById(id); if (byId.isPresent()){ //获取comment对象 Comment comment = byId.get(); return comment; } return null; }
-
SpringBoot
默认缓存底层结构是一个Map
集合,用到的就是ConcurrentMap
//在ConcurrentMapCacheManager类中 //String是标识,命名空间 //Cache是缓存对象,在每个缓存对象中还存在很多的k-v键值对,缓存值 //Cache缓存对象的value: 缓存结果 key:默认在只有一个参数的情况下,key值默认就是方法参数值 //如果没有参数或者多个参数的情况:Springboot会使用simpleKeyGenerate类帮助我们生成key private final ConcurrentMap<String, Cache> cacheMap = new ConcurrentHashMap(16);
3. 缓存注解介绍
-
@EnableCaching
注解:
-
@Cacheable
注解:
-
@Cacheable
注解常用属性
-
默认缓存执行流程&时机
:
常用的SPEL表达式
-
@CachePut
注解:被使用于修改操作比较多,哪怕缓存中已经存在目标值了,但是这个注解会保证这个方法依然会执行,执行之后的结果会保存在缓存中 -
@CachePut
注解提供很多属性,与@Cacheable
属性完全相同 -
@CacheEvict
注解,经常作用于类/方法
上,通常用于数据删除方法上,该注解的作用就是删除缓存数据。@CacheEvict
注解的默认执行顺序是,先进行方法调用,然后将缓存清除
上一篇: Servlet知识点详细讲解及实现
推荐阅读
-
SpringBoot2.0 整合 Shiro 框架,实现用户权限管理
-
SpringBoot2.0 整合 SpringSecurity 框架,实现用户权限安全管理
-
SpringBoot2.0 基础案例(13):基于Cache注解模式,管理Redis缓存
-
SpringBoot2.0 基础案例(08):集成Redis数据库,实现缓存管理
-
springboot mybatis 项目框架源码 shiro 集成代码生成器 ehcache缓存
-
【学习日记】(SpringBoot-part 4)新闻管理系统—添加和修改新闻功能
-
跟我学Springboot开发后端管理系统6:缓存框架Caffeine
-
【Mybatis学习】利用SpringBoot搭建SSM框架
-
SpringBoot2.X学习(三):缓存
-
springboot2.x版本redis缓存学习