我的环境是gradle + kotlin + spring boot,这里介绍ehcache缓存框架在spring boot上的简单应用。
在build.gradle文件添加依赖
1
2
|
compile( "org.springframework.boot:spring-boot-starter-cache" )
compile( "net.sf.ehcache:ehcache" )
|
修改application的配置,增加@enablecaching
配置
1
2
3
4
5
6
7
8
9
10
11
|
@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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<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序列化接口,不然无法写入硬盘
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
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"/>
就可以写入文件,重启服务数据也不会丢失。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://www.jianshu.com/p/3e35009ad3b