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.是什么缓存 . ...
最新文章
- codewars-013: Ease the StockBroker
- 2016年第七届蓝桥杯 - 省赛 - C/C++大学A组 - B. 生日蜡烛
- Android Intent机制详解
- java类中serialversionuid 作用 是什么?举个例子说明
- hql连接查询及外置命名查询
- 串行通信(一):I2C
- python脚本实现ipv6的ddns功能
- 设计一个序列信号发生器, 产生序列信号1011101. 用74LS161和4选1数据选择器74153及必要的门电路实现
- android 最新adt下载地址,Android SDK和最新ADT下载地址
- cad放大_如何把CAD图纸转为高清图片?教你两种方法,小白也能轻松学会
- Intent intent =new Intent(getActivity(),DeliverListActivity.class,Cannot resolve method'getActivity'
- 统计学计算机数据输入,数据输入是什么意思
- u深度制作linux启动盘制作工具,U深度制作u盘启动盘制作工具
- 2016清华集训滚粗记
- html ico不显示,vue 项目线上环境 出现 favicon.ico 不显示 怎么办
- HomeBrew及HomeBrew Cask的简介和使用
- css预处理器sass/scss入门
- SM30 标准程序 添加事件、checkbox 等客制化需求
- 判定是否互为字符重排(入门算法30)
- 大清朝的微积分教材,堪称天书!
热门文章
- 实验1 词法分析程序设计
- ubuntu 16.04 安装教程
- 如何避免把软件装到C盘
- 指针、数组、函数阶段小结
- OpenSSL(加密方式,加密算法,自签证书)
- ele表格操作区根据数据_Vue数据绑定
- wx.createInnerAudioContext seek方法执行后,监听事件onTimeUpdate无效?
- 关于高德地图Android开发时地图只显示一次、第二次打开不定位的解决办法
- java垃圾回收机制(简述)
- 1006 换个格式输出整数 (15 分)(c语言)