计算机领域有人说过一句名言:“计算机科学领域的任何问题都可以通过增加一个中间层来解决”,今天我们就用Spring-cache给网站添加一层缓存,让你的网站速度飞起来。
本文目录
一、Spring Cache介绍二、缓存注解介绍三、Spring Boot+Cache实战1、pom.xml引入jar包2、启动类添加@EnableCaching注解3、配置数据库和redis连接4、配置CacheManager5、使用缓存注解6、查看缓存效果7、注意事项
一、Spring Cache介绍
Spring 3.1引入了基于注解的缓存(cache)技术,它本质上是一个对缓存使用的抽象,通过在既有代码中添加少量它定义的各种注解,就能够达到缓存方法的效果。
Spring Cache接口为缓存的组件规范定义,包含缓存的各种操作集合,并提供了各种xxxCache的实现,如RedisCache,EhCacheCache,ConcurrentMapCache等;
项目整合Spring Cache后每次调用需要缓存功能的方法时,Spring会检查检查指定参数的指定的目标方法是否已经被调用过,如果有就直接从缓存中获取结果,没有就调用方法并把结果放到缓存。
二、缓存注解介绍
对于缓存声明,Spring的缓存提供了一组java注解:
@CacheConfig:设置类级别上共享的一些常见缓存设置。
@Cacheable:触发缓存写入。
@CacheEvict:触发缓存清除。
@Caching 将多种缓存操作分组
@CachePut:更新缓存(不会影响到方法的运行)。
@CacheConfig
该注解是可以将缓存分类,它是类级别的注解方式。我们可以这么使用它。
这样的话,UserServiceImpl的所有缓存注解例如@Cacheable的value值就都为user。
@Cacheable
一般用于查询操作,根据key查询缓存.
如果key不存在,查询db,并将结果更新到缓存中。
如果key存在,直接查询缓存中的数据。
@CachePut
@CachePut标注的方法在执行前不会去检查缓存中是否存在,而是每次都会执行该方法,并将执行结果以键值对的形式存入指定的缓存中。
@CacheEvict
根据key删除缓存中的数据。allEntries=true表示删除缓存中的所有数据。
三、Spring Boot+Cache实战
1、pom.xml引入jar包
2、启动类添加@EnableCaching注解
3、配置数据库和redis连接
4、配置CacheManager
5、使用缓存注解
6、查看缓存效果
postman访问截图
日志截图7、注意事项
有道无术,术可成;有术无道,止于术
欢迎大家关注Java之道公众号
好文章,我在看
领取专属 10元无门槛券
私享最新 技术干货