1、开启注解
@EnableCaching
@Cacheable
将方法的运行结果进行缓存,
属性: cacheNames/value 指定缓存的名字
key:缓存数据使用的key,可以用它来指定,默认是使用方法的参数值
keyGenerator:指定key的生成方式
cacheManager:缓存管理器,在系统中,可能使用多个缓存管理器,有的使用HashMap,有的使用Redis缓存
cacheResolver:缓存解析器,同样是用来管理缓存组件
condition:满足条件时才进行缓存
unless:除非,满足条件的时候不缓存,
sync:异步,缓存是否使用异步模式
缓存的原理:
1、从自动配置原理开始
自动配置类:CacheAutoConfiguration
2、缓存的配置类
3、哪个配置类会生效
默认SimpleCacheConfiguration生效
4、给容器中注册了一个cacheManager:ConcurrentMapCacheManager
5、可以获取和创建ConcurrentMapCache类型的缓存组件,它的作用是将数据保存在ConcurrentMap中
运行流程:
1、方法运行之前,先查询Cache缓存组件,按照cacheNames指定的名字获取
CacheManager先获取相应的缓存,第一次获取缓存如果没