一、概述
SpringCache本身是一个缓存体系的抽象实现,并没有具体的缓存能力,要使用SpringCache还需要配合具体的缓存实现来完成。
虽然如此,但是SpringCache是所有Spring支持的缓存结构的基础,而且所有的缓存的使用最后都要归结于SpringCache,那么一来,要想使用SpringCache,还是要仔细研究一下的。
二、缓存注解
SpringCache缓存功能的实现是依靠下面的这几个注解完成的。
@EnableCaching:开启缓存功能
@Cacheable:定义缓存,用于触发缓存
@CachePut:定义更新缓存,触发缓存更新
@CacheEvict:定义清除缓存,触发缓存清除
@Caching:组合定义多种缓存功能
@CacheConfig:定义公共设置,位于class之上
三、结合缓存框架
- springCache:缓存体系的抽象实现
- caffeine:高性能进程缓存
- j2cache:两级 Java 缓存框架(一级基于内存,二级基于Redis)
四、核心代码
@Override
public CacheManager cacheManager() {
// 引入配置
Properties properties = load("/config/j2cache.properties");
transfer(properties);
J2CacheConfig config = J2CacheConfig.initFromConfig(properties);
// 生成 J2CacheBuilder
J2CacheBuilder j2CacheBuilder = J2CacheBuilder.init(config);
// 构建适配器
return new J2CacheSpringCacheManageAdapter(j2CacheBuilder, true);
}
@Bean("keyGenerator")
public KeyGenerator cacheKeyGenerator(){//缓存key生成者cd
return new CacheKeyGenerator();
}