SpringBoot学习(十九)之使用 Caching- - EhCache
我们来学习一下使用 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相关推荐
- PyTorch框架学习十九——模型加载与保存
PyTorch框架学习十九--模型加载与保存 一.序列化与反序列化 二.PyTorch中的序列化与反序列化 1.torch.save 2.torch.load 三.模型的保存 1.方法一:保存整个Mo ...
- springboot 第十九节 starter and muti_datasource 多数据源
springboot 第十九节 starter and muti_datasource 多数据源 1. spring.datasource.spring.driverClassName=com.mys ...
- 强化学习(十九) AlphaGo Zero强化学习原理
在强化学习(十八) 基于模拟的搜索与蒙特卡罗树搜索(MCTS)中,我们讨论了MCTS的原理和在棋类中的基本应用.这里我们在前一节MCTS的基础上,讨论下DeepMind的AlphaGo Zero强化学 ...
- 鸿蒙Hi3861学习十九-DevEco Device Tool源码获取、编译、下载
一.简介 在上一篇文章中,已经讲述了如何在Windows通过Remote SSH远程连接Linux下的DevEco Device Tool.这篇文章,来说一下关于源码的获取.编译与下载.建议先按照上一 ...
- 什么是python的第三方库_python学习(十九)常见的第三方库
介绍几个python中常见的第三方库. Pillow Pillow简称PIL,是python中常用的图形图像处理模块.写一个简单的例子 1 2 3 4 5 6 7 8 9 10 11 12 13 14 ...
- springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
文章目录 导言 一.swagger2介绍 二.springBoot-swagger2实战演练 1. 快速创建项目 2. 引入是swagger2 依赖 3. swagger2 常用注解 4. ==配置 ...
- CSS基础学习十九:CSS布局之图文混排,图像签名,多图拼接和图片特效
学习了CSS布局的定位和浮动,我们可以简单地做出很多排版和内容拼接.今天就来做几个简单的实例展示现在 流行的DIV+CSS布局的方便好用之处.顺便也说一下CSS3新增的样式属性box-shadow和属 ...
- SpringBoot第十九篇:邮件服务
作者:追梦1819 原文:https://www.cnblogs.com/yanfei1819/p/11118340.html 版权声明:本文为博主原创文章,转载请附上博文链接! 引言 邮件的重要 ...
- 推荐系统遇上深度学习(十九)--探秘阿里之完整空间多任务模型ESSM
欢迎关注天善智能,我们是专注于商业智能BI,人工智能AI,大数据分析与挖掘领域的垂直社区,学习,问答.求职一站式搞定! 对商业智能BI.大数据分析挖掘.机器学习,python,R等数据领域感兴趣的同学 ...
最新文章
- 【分享】(性能优化)思考数据列表中“特殊的列”
- 神策数据携手绿城服务 筑就幸福绿城数据驱动
- 新手教程:用像素游戏制作大师MV开发游戏(一)
- php 写 mysql 事件_PHP日歷,包含來自MySQL數據庫的重復事件
- 排序算法_HeapSort
- java mysql 单例模式_java 单例模式(singleton)连接 mysql 数据库
- Cockroachdb 一、系统环境
- 怎么彻底卸载mysql8.0_彻底卸载MySQL8.0
- FFMPEG实现RTSP中H264数据流解码 并且实时播放
- IM模块-UiCollectionView列表显示气泡图片
- 时间戳90K是什么意思?
- Qt之QTableView的使用
- 红杉官网已删长文:伴随SBF一路走来的救世主情结(上)
- 电脑启动时出现0xc000014c错误怎么办?
- android计步器摘要,【使用总结】蓝牙|连接|步数|设置_摘要频道_什么值得买
- Flash动画下载全功略(不用工具)
- 金融资金平台HTML模板
- F值(F-measure),准确率,召回率计算方法
- python分割字符串保留分隔符_python字符串分割,保留分隔符
- 浏览器主页必劫持的修复方法
热门文章
- 知道创宇将参展2016年国家网络安全宣传周
- vue 多页面入口项目搭建
- 健康饮食小程序 毕业设计-附源码280920
- 字节换算图表,简单理解二进制与字节的关系
- SyntaxError: Unexpected token u in JSON at position 0 at JSON.parse (anonymous)报错原因
- Durzosploit javascript exploits
- 2021葫芦岛高考成绩查询,2021年葫芦岛高考成绩排名及成绩公布时间什么时候出来...
- Check Point增强安全访问服务边缘,安全连接远程和混合劳动力
- jQuery小案例之鼠标滑过显示对应的精品推荐
- 【转帖】mysql 数据库备份及ibdata1的瘦身