• 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;
        }
  • 相关阅读:
    本机mysql 5.7服务启动后停止,某些服务在未有其他应用程序使用时停止
    java数据结构 • 面向对象 • 异常 • 随机数·时间
    获取对象信息
    集合的运算律
    常用的逻辑符号
    未解决问题
    继承和多态
    访问权限
    类和实例
    第三方模块安装
  • 原文地址:https://www.cnblogs.com/chenglc/p/10715417.html
Copyright © 2020-2023  润新知