zoukankan      html  css  js  c++  java
  • springboot ehcache 配置使用方法

    1. pom 引入依赖

            <!-- Ehcache -->
    		<dependency>
    			<groupId>net.sf.ehcache</groupId>
    			<artifactId>ehcache</artifactId>
    		</dependency>

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

    <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 对应 上面 xml name="menucache" 

    	/**删除菜单
    	 * @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);
    	}
  • 相关阅读:
    使用 RestTemplateBuilder.build() 代替 new RestTemplate()
    R2DBC加入Reactive基金会
    Spring Data 2020.0.1 发布
    前后端分离,注册和登录。涉及Oauth2 Password-Flow 授权方式
    OAuth2 Google、Github自定义登录页面
    Authorization-Server入门(二)
    Authorization-Server入门(一)
    Google或Github 登录Web应用​
    使用SpringBoot发送Gmail和QQ邮箱
    理解同步/异步和阻塞/非阻塞的区别
  • 原文地址:https://www.cnblogs.com/teacher11/p/14929866.html
Copyright © 2011-2022 走看看