美文网首页Spring-Boot我爱编程Spring Boot
Spring Boot:简单使用EhCache缓存框架

Spring Boot:简单使用EhCache缓存框架

作者: ImWiki | 来源:发表于2018-05-24 10:45 被阅读27次

    我的环境是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"/>就可以写入文件,重启服务数据也不会丢失。

    image.png

    相关文章

      网友评论

        本文标题:Spring Boot:简单使用EhCache缓存框架

        本文链接:https://www.haomeiwen.com/subject/qrijjftx.html