欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-05-04 16:23:08
...

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

1.环境搭建

2. 默认缓存体验

  1. @EnableCaching:在主启动类上添加这个注解,表示开启SpringBoot基于注解的缓存管理支持
    @EnableCaching
    @SpringBootApplication
    public class Springboot05CacheApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(Springboot05CacheApplication.class, args);
        }
    
    }
    
  2. @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;
        }
    
  3. 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. 缓存注解介绍

  1. @EnableCaching注解:
    springboot框架学习积累---SpringBoot缓存管理
  2. @Cacheable注解:
    springboot框架学习积累---SpringBoot缓存管理
  3. @Cacheable注解常用属性
    springboot框架学习积累---SpringBoot缓存管理
  4. 默认缓存执行流程&时机:
    springboot框架学习积累---SpringBoot缓存管理
    springboot框架学习积累---SpringBoot缓存管理
    常用的SPEL表达式
    springboot框架学习积累---SpringBoot缓存管理
  5. @CachePut注解:被使用于修改操作比较多,哪怕缓存中已经存在目标值了,但是这个注解会保证这个方法依然会执行,执行之后的结果会保存在缓存中
  6. @CachePut注解提供很多属性,与@Cacheable属性完全相同
  7. @CacheEvict注解,经常作用于类/方法上,通常用于数据删除方法上,该注解的作用就是删除缓存数据。@CacheEvict注解的默认执行顺序是,先进行方法调用,然后将缓存清除
相关标签: springboot