在上一节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. codewars-013: Ease the StockBroker
  2. 2016年第七届蓝桥杯 - 省赛 - C/C++大学A组 - B. 生日蜡烛
  3. Android Intent机制详解
  4. java类中serialversionuid 作用 是什么?举个例子说明
  5. hql连接查询及外置命名查询
  6. 串行通信(一):I2C
  7. python脚本实现ipv6的ddns功能
  8. 设计一个序列信号发生器, 产生序列信号1011101. 用74LS161和4选1数据选择器74153及必要的门电路实现
  9. android 最新adt下载地址,Android SDK和最新ADT下载地址
  10. cad放大_如何把CAD图纸转为高清图片?教你两种方法,小白也能轻松学会
  11. Intent intent =new Intent(getActivity(),DeliverListActivity.class,Cannot resolve method'getActivity'
  12. 统计学计算机数据输入,数据输入是什么意思
  13. u深度制作linux启动盘制作工具,U深度制作u盘启动盘制作工具
  14. 2016清华集训滚粗记
  15. html ico不显示,vue 项目线上环境 出现 favicon.ico 不显示 怎么办
  16. HomeBrew及HomeBrew Cask的简介和使用
  17. css预处理器sass/scss入门
  18. SM30 标准程序 添加事件、checkbox 等客制化需求
  19. 判定是否互为字符重排(入门算法30)
  20. 大清朝的微积分教材,堪称天书!

热门文章

  1. 实验1 词法分析程序设计
  2. ubuntu 16.04 安装教程
  3. 如何避免把软件装到C盘
  4. 指针、数组、函数阶段小结
  5. OpenSSL(加密方式,加密算法,自签证书)
  6. ele表格操作区根据数据_Vue数据绑定
  7. wx.createInnerAudioContext seek方法执行后,监听事件onTimeUpdate无效?
  8. 关于高德地图Android开发时地图只显示一次、第二次打开不定位的解决办法
  9. java垃圾回收机制(简述)
  10. 1006 换个格式输出整数 (15 分)(c语言)