springboot ehcache 配置使用方法代码详解

时间:2022-11-08 07:57:52

EhCache是一个比较成熟的Java缓存框架,最早从hibernate发展而来, 是进程中的缓存系统,它提供了用内存,磁盘文件存储,以及分布式存储方式等多种灵活的cache管理方案,快速简单。

Springboot对ehcache的使用非常支持,所以在Springboot中只需做些配置就可使用,且使用方式也简易。

下面通过本文给大家介绍springboot ehcache 配置使用方法,具体内容如下所示:

1. pom 引入依赖

?
1
2
3
4
5
<!-- Ehcache -->
    <dependency>
        <groupId>net.sf.ehcache</groupId>
        <artifactId>ehcache</artifactId>
    </dependency>

2.resources 目录下直接放个文件ehcache.xml

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
         updateCheck="false">
 
    <diskStore path="java.io.tmpdir"/>
 
  <!--defaultCache:echcache的默认缓存策略  -->
    <defaultCache
            maxElementsInMemory="10000"
            eternal="false"
            timeToIdleSeconds="120"
            timeToLiveSeconds="120"
            maxElementsOnDisk="10000000"
            diskExpiryThreadIntervalSeconds="120"
            memoryStoreEvictionPolicy="LRU">
        <persistence strategy="localTempSwap"/>
    </defaultCache>
        
    <!-- 菜单缓存策略 -->
    <cache name="menucache"
            maxElementsInMemory="10000"
            eternal="false"
            timeToIdleSeconds="120"
            timeToLiveSeconds="120"
            maxElementsOnDisk="10000000"
            diskExpiryThreadIntervalSeconds="120"
            memoryStoreEvictionPolicy="LRU">
        <persistence strategy="localTempSwap"/>
    </cache>
    
</ehcache>

3.在Service层 方法上加上注解

@CacheEvict(value="menucache", allEntries=true) ,更新缓存

@Cacheable(key="'menu-'+#parentId",value="menucache") 读取缓存,"'menu-'+#parentId" 通配符,也可以直接写死字符串

menucache 对应 上面 xmlname="menucache"

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/**删除菜单
     * @param MENU_ID
     * @www.fhadmin.org
     */
    @CacheEvict(value="menucache", allEntries=true)
    public void deleteMenuById(String MENU_ID) throws Exception{
        this.cleanRedis();
        menuMapper.deleteMenuById(MENU_ID);
    }
 
    /**
     * 通过ID获取其子一级菜单
     * @param parentId
     * @return
     * @www.fhadmin.org
     */
    @Cacheable(key="'menu-'+#parentId",value="menucache")
    public List<Menu> listSubMenuByParentId(String parentId) throws Exception {
        return menuMapper.listSubMenuByParentId(parentId);
    }

到此这篇关于springboot ehcache 配置使用方法代码详解的文章就介绍到这了,更多相关springboot ehcache 配置使用内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/teacher11/archive/2021/06/25/14929866.html