Spring Cache是Spring-context-xxx.jar中提供的功能,可以结合EHCache、Redis等缓存工具使用。方便的实现缓存的处理和基本判断,可以直接使用注解实现。
    在包含了Spring-context-xxx.jar的spring boot项目中,启动类上添加EnableCaching注解即可开启缓存功能。默认缓存不开启
    优点:基于注解实现缓存管理。
    缺点:流程死板,不能添加逻辑。

    Spring Cache加载缓存工具数据
    只要检测到项目中配置了下面缓存工具(导入了依赖,在spring容器中发现对应工具的内容),无论导入了多少个缓存工具用于只用最前面的一个。
    默认寻找缓存工具的顺序:
    1. Generic
    2.JCache (JSR-107) (EhCache 3, Hazelcast, Infinispan, and others)
    3.EhCache 2.x
    4.Hazelcast
    5.Infinispan
    6.Couchbase
    7.Redis
    8.Caffeine
    9.Simple

    查询所有的数据
    cacheable—查询缓存的注解
    固定流程
    1、根据key访问缓存服务器,查询数据
    2、判断缓存查询结果
    缓存查询有结果,直接返回结果,当前的方法不执行
    缓存中没有结果,进入后续流程
    3、执行当前方法代码逻辑
    4、代码返回值作为value,保存到缓存服务器中
    5、返回方法的返回结果。
    属性:
    完成的缓存key是:cacheName+”: :”+key
    cacheName:缓存key的前缀,字符串类型,只能使用字符串字面值赋值,即常量赋值。
    key:缓存key的后缀。字符串类型,可以使用字符串字面值和SpringEl表达式赋值。赋值的时候如果是字符串的字面值,必须使用 ‘ ‘ 标记。
    springEL表达式直接编写。可用的是各种Spring可识别的变量。
    如根对象root。返回结果Result。方法参数 参数名。
    root : 代表的是当前执行的方法对应的对象。对象中包含当前方法所有的相关数据。如:
    方法名- root.methodName
    方法对象- root.method
    方法参数表数组- root.method.args
    方法参数表的0下标- root.method.args[0]