springboot框架学习积累---SpringBoot缓存管理

tech2023-02-23  99

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注解的默认执行顺序是,先进行方法调用,然后将缓存清除
最新回复(0)