在上一节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操作相关推荐

  1. 【Springboot 入门培训 】#18 SpringBoot Cache 缓存实现

    目录 1 EhCache3 1 执行环境设置 2 Ehcache3 应用 3 Ehcache3 xml设置 2 Caffeine 3 Infinispan 1 SpringBoot嵌入式缓存 2 Ja ...

  2. SpringBoot Cache 深入

    这上一篇文章中我们熟悉了SpringBoot Cache的基本使用,接下来我们看下它的执行流程 CacheAutoConfiguration 自动装配类 根据图中标注,看到它引用了CachingCon ...

  3. SpringBoot入门操作笔记[+mybatismysql]

    文章目录 SpringBoot入门操作笔记[+mybatis&mysql] 1. 创建工程 1.1. 新建SpringBoot项目 1.2. 配置Maven 1.3. 编码配置 2. 项目结构 ...

  4. arm linux s文件夹,armv7对应的CACHE操作相关文件解析

    最近在使用TI的DRA726芯片.A15端需要访问图像,而图像是在外设空间的,用DMA拷贝到CACHE空间. 这样就导致了DMA的CACHE一致性的问题,需要在DMA之后清除所使用图像空间的数据CAC ...

  5. MongoDB入门学习(一)简介与基本操作、整合SpringBoot集合操作、整合SpringBoot文档操作

    文章目录 1. 简介 1.1 NoSQL和MongoDB 1.2 MongoDB特点 1.2.1 MongoDB 技术优势 1.2.2 Json 模型快速特性 1.3 MongoDB 应用场景 1.4 ...

  6. Elastic search入门到集群实战操作详解(原生API操作、springboot整合操作)-step1

    Elastic search入门到集群实战操作详解(原生API操作.springboot整合操作)-step2 https://blog.csdn.net/qq_45441466/article/de ...

  7. SpringBoot 结合 Spring Cache 操作 Redis 实现数据缓存

    点击上方"后端技术精选",选择"置顶公众号" 技术文章第一时间送达! 作者:超级小豆丁 http://www.mydlq.club/article/55/ 系统 ...

  8. SpringBoot 精通系列-SpringBoot如何操作Memcache

    导语   随着公司的业务速度的提高,数据持久化的问题就凸显出来,很多的场景下使用的是缓存技术来解决请求数据库的压力,这种也是缓存技术使用最多的场景之一,当然在高并发.分布式Session场景下,也会使 ...

  9. redis lettuce 超时_Spring Cache 操作 Redis 实现数据缓存(上)

    点击上方☝SpringForAll社区 轻松关注!及时获取有趣有料的技术文章 本文来源:http://www.mydlq.club/article/55/ . 一.缓存概念知识 . 1.是什么缓存 . ...

最新文章

  1. RMAN_学习笔记1_RMAN Structure概述和体系结构
  2. php 实现对称加密算法,PHP实现简单的对称加密和解密方法
  3. 构造函数未定义_构造函数(constructor)和观察者模式,谁略胜一筹呢?
  4. python基础语法合集-Python基础语法介绍
  5. 通过 SSH 连接到 VMware NAT 模式下的 Ubuntu 虚拟机环境
  6. CodeForces - 1312D Count the Arrays(组合数学)
  7. 数据库如何处理数据库太大_网络数据库中的数据处理
  8. .net2.0 C# Json反序列化
  9. linux apache mod_jk,Linux上安装Apache,安装mod_jk,相关配置
  10. Mysql 索引是如何实现的?
  11. 【爬虫】利用Python爬虫爬取小麦苗itpub博客的所有文章的连接地址(1)
  12. 图像处理技术上的空间域和空间频率域
  13. 国产双模蓝牙芯片简介
  14. arduino蓝牙通讯代码_arduino蓝牙通讯
  15. ADXL345 三轴加速度角度传感器
  16. 青年同辈应该有大器晚成的心理准备,共勉
  17. easyui树mysql_Easyui 创建异步树形菜单_EasyUI 教程
  18. 二级路由器设置,二级路由器无法上网
  19. 单片机跑操作系统,到底有几种选择?
  20. Mybatis 查询 List作为参数查询 条件中有多个参数,foreach in 查询

热门文章

  1. 8.Vue 事件处理
  2. 并发编程——线程——理论知识
  3. Go语言范围(Range)
  4. ROS探索总结(五)——创建简单的机器人模型smartcar
  5. 【机器视觉】 endwhile算子
  6. 【Qt】QModbusClient类
  7. 【Linux】一步一步学Linux——nm命令(250)
  8. [Qt教程] 第34篇 网络(四)FTP(二)
  9. 液晶显示器背光测试软件,液晶灰阶|饱和度|背光测试
  10. OpenSSL(加密方式,加密算法,自签证书)