zoukankan      html  css  js  c++  java
  • spring boot 使用Ehcache

    1-引入maven依赖;

    2-增加ehcache.xml

    3-bootstrap.yml配置ehcache.xml的路径

    4-启动类加注解@EnableCaching

    5-使用处加注解@Cacheable(value = "testCache", key = "#user.name")

      Cacheable的value选择配置,默认是默认配置;key是缓存的key值,默认是入参,也可自定义,取其中的一个属性值;

      @CacheEvict(value = "testCache", allEntries = true)

       清空缓存

    1-引入maven依赖

            <!--spring boot 缓存支持启动器-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-cache</artifactId>
            </dependency>
            <!--Ehcahe-->
            <dependency>
                <groupId>net.sf.ehcache</groupId>
                <artifactId>ehcache</artifactId>
                <version>2.10.1</version>
            </dependency>

    2-增加ehcache.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd">
    
        <!-- 磁盘缓存位置 -->
        <diskStore path="java.io.tmpdir/ehcache"/>
    
        <!-- 默认缓存 -->
        <defaultCache
                maxEntriesLocalHeap="10000"
                eternal="false"
                timeToIdleSeconds="120"
                timeToLiveSeconds="120"
                maxEntriesLocalDisk="10000000"
                diskExpiryThreadIntervalSeconds="120"
                memoryStoreEvictionPolicy="LRU">
            <persistence strategy="localTempSwap"/>
        </defaultCache>
    
        <cache name="testCache"
               maxElementsInMemory="1000"
               eternal="false"
               timeToIdleSeconds="3"
               timeToLiveSeconds="3"
               maxEntriesLocalDisk="10000000"
               overflowToDisk="false"
               memoryStoreEvictionPolicy="LRU"/>
    </ehcache>

    3-bootstrap.yml配置ehcache.xml的路径

    #ehcache
    spring.cache.ehcache.config: ehcache.xml

    4-启动类加注解@EnableCaching

    @SpringBootApplication
    @EnableCaching
    public class UserServiceApplication {
        public static void main(String[] args) {
            SpringApplication.run(UserServiceApplication.class, args);
        }
    }

    5-使用处加注解@Cacheable("testCache")

        @GetMapping(value = "/testEhcache")
        @ResponseBody
        @Cacheable("testCache")
        public int testEhcache(int num) {
            logger.info("入参:" + num);
            logger.info("执行:" + num);
            for (int i = 0, n = num; i < n; i++) {
                num += i;
            }
            logger.info("结果:" + num);
            return num;
        }
    
        @GetMapping(value = "/testEhcache2")
        @ResponseBody
        @Cacheable("testCache")
        public int testEhcache2(int num) {
            logger.info("入参:" + num);
            logger.info("执行:" + num);
            for (int i = 0, n = num; i < n; i++) {
                num += Math.random() * 10;
            }
            logger.info("结果:" + num);
            return num;
        }
  • 相关阅读:
    异步加载技术实现瀑布流效果
    点击向下展开的下拉菜单特效
    几个个实用的PHP代码片段【自己备份】
    cache和buffer区别探讨
    windows 文本文件放到linux下使用
    制作rpm包
    mariadb在线热备份做主从
    检查目录下备份文件的脚本
    different between method and function
    mysql忘记root密码解决
  • 原文地址:https://www.cnblogs.com/chenglc/p/10715417.html
Copyright © 2011-2022 走看看