前言:springboot已經為我們實現了抽象的api接口,因此當我們使用不同的緩存時,只是配置有可能有點區別(比如ehcache和Redis),但是在程序中使用緩存的方法是一樣的。
1.springboot使用ehcache緩存
1.步驟:
1.在pom.xml中配置2個依賴,添加spring-boot-starter-cache啟動器,以及ehcache。
<!-- ehcache -->
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>2.10.4</version>
</dependency>
<!-- 緩存支持啟動器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
2.在resources目錄下創建ehcache.xml配置文件。
ehcache.xml配置文件格式如下(該配置文件沒有文檔約束):
<ehcache>
<diskStore path="java.io.tmpdir"/>
<defaultCache
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="true"
/>
<cache name="sampleCache1"
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="300"
timeToLiveSeconds="600"
overflowToDisk="true"
/>
<ehcache>
3.在application.properties文件中指定ehcache的配置文件ehcache.xml,設置spring.cache.ehcache.config=ehcache.xml。
spring.cache.ehcache.config=ehcache.xml
4.在主類上添加自動配置並啟動緩存的注解@EnableCaching。
5.在類上配置緩存策略(通常在service層)。
@CacheConfig:配置用於指定ehcache.xml文件配置的緩存策略;該注解用在類上。
@Cacheable:存取緩存;主要用在查找方法上。
@CachePut:修改緩存,如果不存在就創建;主要用在修改方法上。
@CacheEvict:刪除緩存,當數據刪除時,如果緩存還在,就必須刪除;主要用在刪除方法上。
注意:緩存的pojo類需要實現序列化
