学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。各位小伙伴,如果您:
想系统/深入学习某技术知识点…
一个人摸索学习很难坚持,想组团高效学习…
想写博客但无从下手,急需写作干货注入能量…
热爱写作,愿意让自己成为更好的人…
文章目录
- 一、spring cache是什么?
- 二、常用注解
- 三、使用步骤
-
- 1.导入依赖
- 2.@cacheput的使用
- 3.@cacheable的使用
- 4.@cacheevict的使用
- 5.@enablecaching的使用
- 总结
一、spring cache是什么?
spring cache是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能。
spring cache提供了一层抽象,底层可以切换不同的缓存实现,例如:
- ehcache
- caffeine
- redis
二、常用注解
三、使用步骤
1.导入依赖
spring cache缓存框架的maven导入:
org.springframework.boot
spring-boot-starter-cache
spring cache缓存中间件的导入:
org.springframework.boot
spring-boot-starter-data-redis
总体pom文件如下:
4.0.0
org.springframework.boot
spring-boot-starter-parent
2.7.3
com.itheima
springcache-demo
1.0-snapshot
11
11
org.springframework.boot
spring-boot-starter-web
compile
org.projectlombok
lombok
1.18.20
com.alibaba
fastjson
1.2.76
commons-lang
commons-lang
2.6
org.springframework.boot
spring-boot-starter-cache
org.springframework.boot
spring-boot-starter-data-redis
mysql
mysql-connector-java
runtime
org.mybatis.spring.boot
mybatis-spring-boot-starter
2.2.0
com.alibaba
druid-spring-boot-starter
1.2.1
com.github.xiaoymin
knife4j-spring-boot-starter
3.0.2
org.springframework.boot
spring-boot-starter-test
org.springframework.boot
spring-boot-maven-plugin
2.7.3
2.@cacheput的使用
@cacheput:将方法的返回值放到缓存中
案例代码:
@postmapping
//@cacheput(cachenames = "usercache",key = "#user.id")
@cacheput(cachenames = "usercache",key = "#result.id")
public user save(@requestbody user user){
usermapper.insert(user);
return user;
}
其中#这种写法是spring规范的。
cachename:缓存名称,是个字符串
key:缓存数据
如果使用spring cache缓存数据,key的生成:usercache::缓存数据
3.@cacheable的使用
@cacheable:在方法执行前先查询缓存中是否有数据,如果有数据,则直接返回缓存数据;如果没有缓存数据,调用方法并将方法返回值放到缓存中
案例代码:
@getmapping
@cacheable(cachenames = "usercache",key = "#id")//key的生成:usercache::10
public user getbyid(long id){
user user = usermapper.getbyid(id);
return user;
}
4.@cacheevict的使用
@cacheevict:将一条或多条数据从缓存中删除
清理一条数据案例代码:
@deletemapping
@cacheevict(cachenames = "usercache",key="#id")//key的生成:usercache::10
public void deletebyid(long id){
usermapper.deletebyid(id);
}
清理多条数据(cachenames定义的名字下的所有数据都删除)案例代码:
@deletemapping("/delall")
@cacheevict(cachenames = "usercache",allentries = true)
public void deleteall(){
usermapper.deleteall();
}
5.@enablecaching的使用
@enablecaching:开启缓存注解功能,通常加在启动类上
案例代码:
@springbootapplication
@enabletransactionmanagement //开启注解方式的事务管理
@slf4j
@enablecaching//开启缓存注解功能
public class skyapplication {
public static void main(string[] args) {
springapplication.run(skyapplication.class, args);
log.info("server started");
}
}
总结
以上就是spring cache(缓存框架)的相关知识点,希望对你有所帮助。
积跬步以至千里,积怠惰以至深渊。时代在这跟着你一起努力哦!