(1)maven依赖
<!-- Spring boot 开启 Cache-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
<version>2.1.3.RELEASE</version>
</dependency>
<!--for ehcache-->
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>2.10.4</version>
</dependency>
(2)ehcache.xml
<?xml version="1.0" encoding="UTF-8"?>
<ehcache>
<diskStore path="java.io.tmpdir"/>
<!-- 设定缓存的默认数据过期策略 -->
<!-- timeToIdleSeconds:两次访问时间的最大时间间隔值(毫秒) -->
<!-- timeToLiveSeconds:一个元素从构建到消亡的最大时间间隔值(毫秒) -->
<defaultCache
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="true"
maxElementsOnDisk="10000000"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"/>
<cache name="XXXXXXXCache"
maxElementsInMemory="1000"
eternal="false"
timeToIdleSeconds="10"/>
</ehcache>
(3)设置application.yml 读取ehcache.xml
spring:
cache:
ehcache:
config: classpath:ehcache.xml
(4)注解配置
(1)在spring boot程序入口,添加 @EnableCaching,这个注解必须要加
(2)在dao的实现类中,对应方法加上 @Cacheable