1、pom依賴配置
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
</dependency>
2轩褐、ehcache配置文件(src/main/resources資源目錄下)
<?xml version="1.0" encoding="UTF-8"?>
<ehcache
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
updateCheck="false">
<!-- 磁盤緩存位置 -->
<diskStore path="java.io.tmpdir/ehcache"/>
<!-- 默認緩存 -->
<defaultCache
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="true"
maxElementsOnDisk="10000000"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
memoryStoreEvictionPolicy="LRU"
/>
<!-- 定義緩存 -->
<cache name="table1Cache"
maxElementsInMemory="1000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="false"
memoryStoreEvictionPolicy="LRU"/>
</ehcache>
3、ehcache配置類(@Configuration)
@Configuration
@EnableCaching // 標注啟動緩存
public class CacheConfiguration {
/**
* Logger for this class
*/
private static final Logger logger = Logger.getLogger(CacheConfiguration.class);
/**
* ehcache 主要的管理器
* @param bean
* @return
*/
@Bean
public EhCacheCacheManager ehCacheCacheManager(EhCacheManagerFactoryBean bean){
logger.warn("初始化EhCacheCacheManager");
return new EhCacheCacheManager(bean.getObject());
}
@Bean
public EhCacheManagerFactoryBean ehCacheManagerFactoryBean(){
logger.warn("初始化EhCacheManagerFactoryBean");
EhCacheManagerFactoryBean factoryBean = new EhCacheManagerFactoryBean();
factoryBean.setConfigLocation(new ClassPathResource("ehcache.xml"));
factoryBean.setShared(true);
return factoryBean;
}
}
4、ehcache注解使用
在service接口方法上進行緩存標注
/**
* 重工業(yè)工業(yè)增加值占比(%)歷史月份
*
* @param startMonth
* @param endMonth
* @return
*/
@Cacheable(value="table1Cache") // value為已定義緩存的名字
List<JsonSetBean> indIncPercentageHistData(String startMonth, String endMonth);
5努酸、緩存測試
測試@Cacheable標注的接口,第一次執(zhí)行了Dao層查詢杜恰,往后的調(diào)用沒有執(zhí)行Dao層获诈,此時說明ehcache已經(jīng)工作了