此笔记内容为黑马瑞吉外卖项目的SpringCache框架部分。
成都创新互联专业为企业提供深州网站建设、深州做网站、深州网站设计、深州网站制作等企业网站建设、网页设计与制作、深州企业网站模板建站服务,10余年深州做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。目录
一、Spring Cache介绍
二、Spring Cache常用注解
三、Spring Cache使用方式
入门使用
@CachePut
@CacheEvict
@Cacheable
使用Redis来作为缓存产品
缓存套餐数据
实现思路
代码改造
Spring cache是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。
Spring Cache提供了一层抽象,底层可以切换不同的cache实现。具体就是通过CacheManager接口来统一不同的缓存技术。
CacheManager是Spring提供的各种缓存技术抽象接口。
针对不同的缓存技术需要实现不同的CacheManager:
二、Spring Cache常用注解在spring boot项目中,使用缓存技术只需在项目中导入相关缓存技术的依赖包,并在启动类上使用@EnableCaching开启缓存支持即可。
例如,使用Redis作为缓存技术,只需要导入Spring data Redis的maven坐标即可。
三、Spring Cache使用方式引入spring-boot-starter-web的包时,SpringCache的一些基础api就在里面的spring-context包下。
以对用户表进行CRUD操作作为案例。
注意:这里的User类需要实现序列化接口,否者无法缓存。
它的实现类是ConcurrentMapCacheManager
在启动类加入@EnableCaching注解
@CachePutkey可用 :#result返回值, #方法参数(#user对应方法参数的user)...
在运行了后,方法返回值也就是用户的数据就缓存到了Map中。
@CacheEvict执行完后,发现对应key的缓存数据已被删除掉了。
@Cacheable这里感觉可以存入空数据比较好,是解决缓存穿透的方法之一。
PS:由于低层是用Map来存的,重启服务之后缓存数据就不存在了。(改进使用Redis来缓存数据)
在Spring Boot项目中使用Spring Cache的操作步骤(使用redis缓存技术);
1、导入maven坐标
spring-boot-starter-data-redis、spring-boot-starter-cache
2、配置application.yml
spring:
cache:
redis:
time-to-live: 1800000#设置缓存有效期
3、在启动类上加入@EnableCaching注解,开启缓存注解功能
4、在Controller的方法上加入@Cacheable、@CacheEvict等注解,进行缓存操作
缓存套餐数据 实现思路前面我们已经实现了移动端套餐查看功能,对应的服务端方法为SetmealController的list方法,此方法会根据前端提交的查询条件进行数据库查询操作。在高并发的情况下,频繁查询数据库会导致系统性能下降,服务端响应时间增长。现在需要对此方法进行缓存优化,提高系统的性能。
具体的实现思路如下:
1、导入Spring Cache和Redis相关maven坐标
2、在application.yml中配置缓存数据的过期时间
3、在启动类上加入@EnableCaching注解,开启缓存注解功能
4、在SetmealController的list方法上加入@Cacheable注解
5、在SetmealController的save和delete方法上加入CacheEvict注解
代码改造1.在pom.xml文件中导入maven坐标
org.springframework.boot spring-boot-starter-cache
2.在application.yml中配置缓存数据过期时间
cache:
redis:
time-to-live: 1800000 #设置过期时间3分钟 单位毫秒
3.在启动类@EnableCaching注解
4.在list方法上添加注解,实现在redis里添加缓存
@Cacheable(value = "setmealCache",key = "#setmeal.categoryId+'_'+#setmeal.status")
5.在save,delete方法上添加注解,清除缓存
注意:R类要实现序列化接口,否者无法缓存报错
结束!
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧