Spring Boot 简单使用EhCache缓存框架的方法
时间:2018-07-20
本篇文章主要介绍了Spring Boot 简单使用EhCache缓存框架的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
我的环境是Gradle + Kotlin + Spring Boot,这里介绍EhCache缓存框架在Spring Boot上的简单应用。
在build.gradle文件添加依赖
compile("org.springframework.boot:spring-boot-starter-cache") compile("net.sf.ehcache:ehcache")
修改Application的配置,增加@EnableCaching
配置
@MapperScan("com.xxx.xxx.dao") @SpringBootApplication(scanBasePackages= arrayOf("com.xxx.xxx")) // 启用缓存注解 @EnableCaching // 启动定时器 @EnableScheduling open class MyApplication {} fun main(args: Array<String>) { SpringApplication.run(MyApplication::class.java, *args) }
在resources
添加文件ehcache.xml
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ehcache.xsd"> <diskStore path="myCache.ehcache"/> <defaultCache maxElementsInMemory="100" eternal="true" overflowToDisk="true"/> <cache name="userCache" maxElementsInMemory="10" eternal="false" timeToIdleSeconds="0" timeToLiveSeconds="0" overflowToDisk="true" maxElementsOnDisk="20" diskPersistent="true" diskExpiryThreadIntervalSeconds="120" memoryStoreEvictionPolicy="LRU"/> </ehcache>
使用
需要持久化的类需要实现Serializable序列化接口,不然无法写入硬盘
class User : Serializable { var id: Int = 0 var name: String? = null constructor() constructor(id: Int, name: String?) { this.id = id this.name = name } } // 获取缓存实例 val userCache = CacheManager.getInstance().getCache("userCache") // 写入缓存 val element = Element("1000", User(1000,"Wiki")) userCache.put(element) // 读取缓存 val user = userCache.get("1000").objectValue as User
写入硬盘
只要增加<diskStore path="myCache.ehcache"/>
就可以写入文件,重启服务数据也不会丢失。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
- 字符串处理技巧
- SwipeRefreshLayout下拉刷新组件
- 使用数字进行字符遍历
- 技术分享:杂谈如何绕过WAF(Web应用防火墙)
- 模拟Executor策略的实现如何控制执行顺序?怎么限制最大同时开启线程的个数?为什么要有一个线程来将结束的线程移除出执行区?转移线程的时候要判断线程是否为空遍历线程的容器会抛出ConcurrentM
- ViewPager快速实现引导页
- Linux学习 - 常用和不太常用的实用awk命令
- 漏洞预警:厄运cookie(Misfortune Cookie)漏洞影响全球1200万台路由器
- 漏洞预警:Google安全研究人员发现NTP(网络时间协议)最新漏洞
- 揭秘:从内部源码看Facebook技术(第一集)
- Python 自然语言处理《釜山行》人物关系
- 注意:C++中double的表示是有误差的
- 完善RecyclerView,添加首尾视图
- 初识Node.js
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- JavaSE面试深度剖析 第三讲
- docker+consul+ nginx集成分布式的服务发现与注册架构
- CWFF:一款针对模糊测试的自定义字典工具
- HMM、信号、时序、降噪(附代码)
- 原创 | 图解git,用手绘图带你理解git中分支的原理和应用
- Android 天气APP(二十四)地图天气(上)自动定位和地图点击定位
- 3分钟短文:可能是Laravel模板最直白的用法了,没有之一
- Android 天气APP(二十三)增加灾害预警、优化主页面UI
- Android 天气APP(二十一)滑动改变UI、增加更多天气数据展示,最多未来15天天气预报
- Android 读取csv格式数据文件
- Android LitePal的简单使用
- Android RecyclerVIew列表使用 (编辑、单选、全选、删除、动画效果+附源码)
- Android TV 焦点控制
- Kotlin学习日志(四)函数
- Kotlin学习日志(三)控制语句