SpringBoot Cache操作
在上一节JPA操作基础上修改
Cache缓存策略:使更少的操作数据库,更快的返回数据
1、引入cache依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId> </dependency>
2.主要是修改UserSerViceImpl服务层实现类
@Service @Transactional //事务 public class UserServiceImpl implements UserService {@Autowiredprivate UserRepository userRepository;@Override@Cacheable(value = "user", key = "#id")public User findUserById(Integer id) {System.out.println("查询用户查询数据库");return userRepository.getOne(id);}@Override@Cacheable(value = "userListPage" , key = "#pageable") //key值可视化,每页的key值是不同的public Page<User> findUserListPage(Pageable pageable) {System.out.println("分页查询数据库");return userRepository.findAll(pageable);}@Override//@CacheEvict(value = "users",key = "#id") //清空缓存中以users和key值缓存策略缓存的对象@CacheEvict(value = "userListPage",allEntries = true) //清空所有缓存中以users缓存策略缓存的对象public void saveUser(User user) {userRepository.save(user);}/*注解Caching可以混合几个注解*/@Override@Caching(evict = {@CacheEvict(cacheNames = "user",key = "#user.id"),@CacheEvict(cacheNames = "user2" ,key = "user2.id")})public void updateUser(User user) {}}
3.测试TsetController类
@Controller public class TestController {@Autowiredprivate UserService userService;@RequestMapping("/getUserById")public @ResponseBody User getUserById(){System.out.println(userService.findUserById(1527));System.out.println(userService.findUserById(1527));System.out.println(userService.findUserById(1528));return userService.findUserById(1527);} }
4.对启动类添加缓存注解
@SpringBootApplication @EnableCaching //对缓存做配置 public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}}
5.进行测试:
运行结果:
第二次查询数据库是因为id不同没有这个缓存,会去查询数据库的
转载于:https://www.cnblogs.com/yanghe123/p/10963601.html
SpringBoot Cache操作相关推荐
- 【Springboot 入门培训 】#18 SpringBoot Cache 缓存实现
目录 1 EhCache3 1 执行环境设置 2 Ehcache3 应用 3 Ehcache3 xml设置 2 Caffeine 3 Infinispan 1 SpringBoot嵌入式缓存 2 Ja ...
- SpringBoot Cache 深入
这上一篇文章中我们熟悉了SpringBoot Cache的基本使用,接下来我们看下它的执行流程 CacheAutoConfiguration 自动装配类 根据图中标注,看到它引用了CachingCon ...
- SpringBoot入门操作笔记[+mybatismysql]
文章目录 SpringBoot入门操作笔记[+mybatis&mysql] 1. 创建工程 1.1. 新建SpringBoot项目 1.2. 配置Maven 1.3. 编码配置 2. 项目结构 ...
- arm linux s文件夹,armv7对应的CACHE操作相关文件解析
最近在使用TI的DRA726芯片.A15端需要访问图像,而图像是在外设空间的,用DMA拷贝到CACHE空间. 这样就导致了DMA的CACHE一致性的问题,需要在DMA之后清除所使用图像空间的数据CAC ...
- MongoDB入门学习(一)简介与基本操作、整合SpringBoot集合操作、整合SpringBoot文档操作
文章目录 1. 简介 1.1 NoSQL和MongoDB 1.2 MongoDB特点 1.2.1 MongoDB 技术优势 1.2.2 Json 模型快速特性 1.3 MongoDB 应用场景 1.4 ...
- Elastic search入门到集群实战操作详解(原生API操作、springboot整合操作)-step1
Elastic search入门到集群实战操作详解(原生API操作.springboot整合操作)-step2 https://blog.csdn.net/qq_45441466/article/de ...
- SpringBoot 结合 Spring Cache 操作 Redis 实现数据缓存
点击上方"后端技术精选",选择"置顶公众号" 技术文章第一时间送达! 作者:超级小豆丁 http://www.mydlq.club/article/55/ 系统 ...
- SpringBoot 精通系列-SpringBoot如何操作Memcache
导语 随着公司的业务速度的提高,数据持久化的问题就凸显出来,很多的场景下使用的是缓存技术来解决请求数据库的压力,这种也是缓存技术使用最多的场景之一,当然在高并发.分布式Session场景下,也会使 ...
- redis lettuce 超时_Spring Cache 操作 Redis 实现数据缓存(上)
点击上方☝SpringForAll社区 轻松关注!及时获取有趣有料的技术文章 本文来源:http://www.mydlq.club/article/55/ . 一.缓存概念知识 . 1.是什么缓存 . ...
最新文章
- RMAN_学习笔记1_RMAN Structure概述和体系结构
- php 实现对称加密算法,PHP实现简单的对称加密和解密方法
- 构造函数未定义_构造函数(constructor)和观察者模式,谁略胜一筹呢?
- python基础语法合集-Python基础语法介绍
- 通过 SSH 连接到 VMware NAT 模式下的 Ubuntu 虚拟机环境
- CodeForces - 1312D Count the Arrays(组合数学)
- 数据库如何处理数据库太大_网络数据库中的数据处理
- .net2.0 C# Json反序列化
- linux apache mod_jk,Linux上安装Apache,安装mod_jk,相关配置
- Mysql 索引是如何实现的?
- 【爬虫】利用Python爬虫爬取小麦苗itpub博客的所有文章的连接地址(1)
- 图像处理技术上的空间域和空间频率域
- 国产双模蓝牙芯片简介
- arduino蓝牙通讯代码_arduino蓝牙通讯
- ADXL345 三轴加速度角度传感器
- 青年同辈应该有大器晚成的心理准备,共勉
- easyui树mysql_Easyui 创建异步树形菜单_EasyUI 教程
- 二级路由器设置,二级路由器无法上网
- 单片机跑操作系统,到底有几种选择?
- Mybatis 查询 List作为参数查询 条件中有多个参数,foreach in 查询