【SpringBoot】14 缓存(cache)

介绍

Spring 框架支持透明地向应用程序添加缓存对缓存进行管理,其管理缓存的核心是将缓存应用于操作数据的方法(包括增删查改等),从而减少操作数据的执行次数(主要是查询,直接从缓存中读取数据),同时不会对程序本身造成任何干扰。

SpringBoot 继承了 Spring 框架的缓存管理功能,通过使用 @EnableCaching 注解开启基于注解的缓存支持,SpringBoot 就可以启动缓存管理的自动化配置。

@EnableCaching:通常配置在项目启动类,表示开启缓存功能。

@Cacheable:⽤于对方法的查询结果进行缓存存储,当存在缓存时,直接使用缓存结果,不存在缓存时,进行方法查询,将结果存入缓存。

@CachePut:表示将返回结果更新到缓存中。

@CacheEvict:表示删除缓存数据。

代码实现

第一步:添加依赖

pom.xml

xml 复制代码
<!--  缓存    -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-cache</artifactId>
</dependency>

第二步:在启动类上添加 @EnableCaching 注解

SystemApplication.java

java 复制代码
@EnableCaching
@SpringBootApplication
@MapperScan("com.lm.system.mapper")
public class SystemApplication extends SpringBootServletInitializer {}

第三步:在业务类上添加 @CacheConfig 直接,在业务方法上添加 @Cacheable 注解。

java 复制代码
@Service
@CacheConfig(cacheNames = "user")
public class UserServiceImpl implements UserService {

     @Override
     @Cacheable
     public List<User> queryAllUser() {
         return userMapper.queryAllUser();
     }

}

效果图

第一次查询访问了数据库。

第二次查询访问了缓存(没有打印具体执行的SQL)。

参考资料

Spring Boot 2.x基础教程:进程内缓存的使用与Cache注解详解【https://www.didispace.com/spring-boot-2/5-1-caching.html】

相关推荐
Meepo_haha1 小时前
配置 Redis
数据库·redis·缓存
不吃香菜学java4 小时前
Redis的java客户端
java·开发语言·spring boot·redis·缓存
码事漫谈4 小时前
大模型输出的“隐性结构塌缩”问题及对策
前端·后端
小江的记录本4 小时前
【网络安全】《网络安全常见攻击与防御》(附:《六大攻击核心特性横向对比表》)
java·网络·人工智能·后端·python·安全·web安全
努力的小雨5 小时前
龙虾量化实战法(QClaw)
后端
橙露5 小时前
SpringBoot 整合 MinIO:分布式文件存储上传下载
spring boot·分布式·后端
小眼哥5 小时前
SpringBoot整合Vue代码生成exe运行程序以及windows安装包
vue.js·windows·spring boot
2401_895521346 小时前
【Spring Security系列】Spring Security 过滤器详解与基于JDBC的认证实现
java·后端·spring
小码哥_常7 小时前
大文件上传不再卡顿:Spring Boot 分片上传、断点续传与进度条实现全解析
后端
_Evan_Yao7 小时前
RAG中的“Chunk”艺术:我试过10种切分策略后总结的结论
java·人工智能·后端·python·软件工程