我们来学习一下使用 Caching- - EhCache,我们根据Druid连接池以及SQL监控和spring监控项目改动一下, 复制springboot_durid改为springboot_ehcache

1.引入maven依赖

<!-- caching -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency><groupId>net.sf.ehcache</groupId><artifactId>ehcache</artifactId>
</dependency>

2.配置application.properties

#echache缓存
spring.cache.type=ehcache
spring.cache.ehcache.config=classpath:config/ehcache.xml

3.配置config/ehcache.xml

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="ehcache.xsd"><cache name="roncooCache" eternal="false" maxEntriesLocalHeap="0"timeToIdleSeconds="50"></cache><!-- eternal:true表示对象永不过期,此时会忽略timeToIdleSeconds和 timeToLiveSeconds属性,默认为false --><!-- maxEntriesLocalHeap:堆内存中最大缓存对象数,0没有限制 --><!-- timeToIdleSeconds: 设定允许对象处于空闲状态的最长时间,以秒为 单位。当对象自从最近一次被访问后,如果处于空闲状态的时间超过了 timeToIdleSeconds属性值,这个对象就会过期,EHCache将把它从缓存中清空。 只有当eternal属性为false,该属性才有效。如果该属性值为0,则表示对象可以 无限期地处于空闲状态 -->
</ehcache>

4.启用@EnableCaching 注解支持

@EnableCaching

5.编写控制器

package com.cicoding.controller;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;import com.cicoding.bean.User;
import com.cicoding.service.CacheUserService;@Controller
@RequestMapping(value="/user")
public class UserController {@Autowiredprivate CacheUserService userMapper;@ResponseBody@RequestMapping(value="/get")public User get() {return userMapper.getOne(1);}@ResponseBody@RequestMapping(value="/list")public List<User> list() {return userMapper.list();}
}

6.编写服务接口和实现类

package com.cicoding.service;import java.util.List;import com.cicoding.bean.User;public interface CacheUserService {public User getOne(int id);public List<User> list();
}package com.cicoding.service.impl;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheConfig;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;import com.cicoding.bean.User;
import com.cicoding.mapper.UserMapper;
import com.cicoding.service.CacheUserService;@CacheConfig(cacheNames = "roncooCache")
@Service
public class CacheUserServiceImpl implements CacheUserService {@Autowiredprivate UserMapper userMapper;@Cacheable(key = "#p0")@Overridepublic User getOne(int id) {System.out.println("缓存不存在,读取数据库, id=" + id);return userMapper.getOne(id);}@Overridepublic List<User> list() {return userMapper.list();}}
  • 启动项目
  • 第一次访问,所以没有缓存,故发出一条sql语句查询。
  • 然后在访问“http://localhost:8080/user/get” 结果如下:

再次刷新还是没有打印;说明在缓存读取的

结束。。。

SpringBoot学习(十九)之使用 Caching- - EhCache相关推荐

  1. PyTorch框架学习十九——模型加载与保存

    PyTorch框架学习十九--模型加载与保存 一.序列化与反序列化 二.PyTorch中的序列化与反序列化 1.torch.save 2.torch.load 三.模型的保存 1.方法一:保存整个Mo ...

  2. springboot 第十九节 starter and muti_datasource 多数据源

    springboot 第十九节 starter and muti_datasource 多数据源 1. spring.datasource.spring.driverClassName=com.mys ...

  3. 强化学习(十九) AlphaGo Zero强化学习原理

    在强化学习(十八) 基于模拟的搜索与蒙特卡罗树搜索(MCTS)中,我们讨论了MCTS的原理和在棋类中的基本应用.这里我们在前一节MCTS的基础上,讨论下DeepMind的AlphaGo Zero强化学 ...

  4. 鸿蒙Hi3861学习十九-DevEco Device Tool源码获取、编译、下载

    一.简介 在上一篇文章中,已经讲述了如何在Windows通过Remote SSH远程连接Linux下的DevEco Device Tool.这篇文章,来说一下关于源码的获取.编译与下载.建议先按照上一 ...

  5. 什么是python的第三方库_python学习(十九)常见的第三方库

    介绍几个python中常见的第三方库. Pillow Pillow简称PIL,是python中常用的图形图像处理模块.写一个简单的例子 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...

  6. springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j

    文章目录 导言 一.swagger2介绍 二.springBoot-swagger2实战演练 1. 快速创建项目 2. 引入是swagger2 依赖 3. swagger2 常用注解 4. ==配置 ...

  7. CSS基础学习十九:CSS布局之图文混排,图像签名,多图拼接和图片特效

    学习了CSS布局的定位和浮动,我们可以简单地做出很多排版和内容拼接.今天就来做几个简单的实例展示现在 流行的DIV+CSS布局的方便好用之处.顺便也说一下CSS3新增的样式属性box-shadow和属 ...

  8. SpringBoot第十九篇:邮件服务

    作者:追梦1819 原文:https://www.cnblogs.com/yanfei1819/p/11118340.html 版权声明:本文为博主原创文章,转载请附上博文链接! 引言   邮件的重要 ...

  9. 推荐系统遇上深度学习(十九)--探秘阿里之完整空间多任务模型ESSM

    欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答.求职一站式搞定! 对商业智能BI.大数据分析挖掘.机器学习,python,R等数据领域感兴趣的同学 ...

最新文章

  1. 【分享】(性能优化)思考数据列表中“特殊的列”
  2. 神策数据携手绿城服务 筑就幸福绿城数据驱动
  3. 新手教程:用像素游戏制作大师MV开发游戏(一)
  4. php 写 mysql 事件_PHP日歷,包含來自MySQL數據庫的重復事件
  5. 排序算法_HeapSort
  6. java mysql 单例模式_java 单例模式(singleton)连接 mysql 数据库
  7. Cockroachdb 一、系统环境
  8. 怎么彻底卸载mysql8.0_彻底卸载MySQL8.0
  9. FFMPEG实现RTSP中H264数据流解码 并且实时播放
  10. IM模块-UiCollectionView列表显示气泡图片
  11. 时间戳90K是什么意思?
  12. Qt之QTableView的使用
  13. 红杉官网已删长文:伴随SBF一路走来的救世主情结(上)
  14. 电脑启动时出现0xc000014c错误怎么办?
  15. android计步器摘要,【使用总结】蓝牙|连接|步数|设置_摘要频道_什么值得买
  16. Flash动画下载全功略(不用工具)
  17. 金融资金平台HTML模板
  18. F值(F-measure),准确率,召回率计算方法
  19. python分割字符串保留分隔符_python字符串分割,保留分隔符
  20. 浏览器主页必劫持的修复方法

热门文章

  1. 知道创宇将参展2016年国家网络安全宣传周
  2. vue 多页面入口项目搭建
  3. 健康饮食小程序 毕业设计-附源码280920
  4. 字节换算图表,简单理解二进制与字节的关系
  5. SyntaxError: Unexpected token u in JSON at position 0 at JSON.parse (anonymous)报错原因
  6. Durzosploit javascript exploits
  7. 2021葫芦岛高考成绩查询,2021年葫芦岛高考成绩排名及成绩公布时间什么时候出来...
  8. Check Point增强安全访问服务边缘,安全连接远程和混合劳动力
  9. jQuery小案例之鼠标滑过显示对应的精品推荐
  10. 【转帖】mysql 数据库备份及ibdata1的瘦身