从零开始搭建自己的网站十一:ehcache缓存配置

Springboot添加缓存也是很方便,网站我选择的是ehcache缓存。

一、导入Gradle依赖

compile 'org.springframework.boot:spring-boot-starter-cache'
compile 'net.sf.ehcache:ehcache'

二、配置代码

在启动类中添加注解

@EnableCaching
public class Application ...

添加配置文件

<?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/Tmp_EhCache" />
    <defaultCache eternal="false" maxElementsInMemory="1000" overflowToDisk="false" diskPersistent="false"
                  timeToIdleSeconds="0" timeToLiveSeconds="600" memoryStoreEvictionPolicy="LRU" />
    <!--最新文章缓存1天-->
    <cache name="newArticle" eternal="false" maxElementsInMemory="100" overflowToDisk="false" diskPersistent="false"
           timeToIdleSeconds="0" timeToLiveSeconds="3600" memoryStoreEvictionPolicy="LRU" />
    <!--类别缓存一天-->
    <cache name="category" eternal="false" maxElementsInMemory="100" overflowToDisk="false" diskPersistent="false"
           timeToIdleSeconds="0" timeToLiveSeconds="86400" memoryStoreEvictionPolicy="LRU" />

    <cache name="topArticle" eternal="false" maxElementsInMemory="100" overflowToDisk="false" diskPersistent="false"
           timeToIdleSeconds="0" timeToLiveSeconds="86400" memoryStoreEvictionPolicy="LRU" />

    <cache name="good" eternal="false" maxElementsInMemory="100" overflowToDisk="false" diskPersistent="false"
           timeToIdleSeconds="0" timeToLiveSeconds="86400" memoryStoreEvictionPolicy="LRU" />

</ehcache>

三、在serviceImpl中添加缓存注解

@Override
@Cacheable(value = "newArticle")
public List<Article> getArticleList(int num, List<Count> countList) {
    List<Article> articleList = articleDao.getArticleList(num * 5);
    ConvertUtil.addClickConvert(articleList, countList);
    return articleList;
}

运行代码,缓存生效。

注解有: @Cacheable 先从缓存中查,没有则查询数据库、 @CacheEvict 清空缓存 、@CachePut 表示缓存方法,每次都会去查询重新放入。

配置文件中相应的内容意思可以自行去百度。


评论 抢沙发

表情
  1. #1

    来自匿名的用户(2018-07-25)

    666