springboot 学习之路 25(springboot缓存)

springboot缓存:

  以前我介绍过springboot与ecache和redis的搭建配置过程,但是没详细介绍过缓存,今天来带搭建详细介绍springboot的缓存,

    关于之前的博客:

        springboot 学习之路 13 (集成ehcache)

        springboot 学习之路 21 (集成redis集群做缓存架构)

    不了解怎么集成ecache或者redis的可以参考上面的博客,去学习一下。

Spring-Boot-Cache  

   Spring从3.1开始定义了org.springframework.cache.Cache和org.springframework.cache.CacheManager接口来统一不同的缓存技术;并支持使用JCache(JSR-107)注解简化我们开发;

  • Cache接口为缓存的组件规范定义,包含缓存的各种操作集合;

  • Cache接口下Spring提供了各种xxxCache的实现;如RedisCache,EhCacheCache ,ConcurrentMapCache等;

  • 每次调用需要缓存功能的方法时,Spring会检查检查指定参数的指定的目标方法是否已经被调用过;如果有就直接从缓存中获取方法调用后的结果,如果没有就调用方法并缓存结果后返回给用户。下次调用直接从缓存中获取。

  • 使用Spring缓存抽象时我们需要关注以下两点;

    1、确定方法需要被缓存以及他们的缓存策略

    2、从缓存中读取之前缓存存储的数据

   Spring 的缓存技术还具备相当的灵活性,不仅能够使用 SpEL(Spring Expression Language)来定义缓存的 key 和各种 condition,还提供开箱即用的缓存临时存储方案,也支持和主流的专业缓存例如 EHCache 集成。
     其特点总结如下:
       1. 通过少量的配置 annotation 注释即可使得既有代码支持缓存
       2. 支持开箱即用 Out-Of-The-Box,即不用安装和部署额外第三方组件即可使用缓存
       3. 支持 Spring Express Language,能使用对象的任何属性或者方法来定义缓存的 key 和 condition
       4. 支持 AspectJ,并通过其实现任何方法的缓存支持
       5. 支持自定义 key 和自定义缓存管理者,具有相当的灵活性和扩展性

 Spring缓存支持 

  Spring定义了org.springframework.cache.CacheManager和org.springframework.cache.Cache接口用来统一不同的缓存的技术。其中,CacheManager是Spring提供的各种缓存技术抽象接口,Cache接口包含缓存的各种操作(增加、删除、获得缓存,我们一般不会直接和此接口打交道)。

  

 

基础概念

  常用注解:

   

  部分参数:

  

 

   SpEL上下文数据

   

 

   

 

springboot整合:

 

  关于springboot的整合我在之前的博客中已经整合了关于ecache和redis的方式。下面我就只简单介绍一下上面那些注解使用与注意项 

  

  


 

posted @ 2018-12-06 13:44  陽66  阅读(221)  评论(0)    收藏  举报