zoukankan      html  css  js  c++  java
  • springboot ehcache

    直接上代码

    一,POM

    <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-cache</artifactId>
            </dependency>
    <dependency>
                <groupId>net.sf.ehcache</groupId>
                <artifactId>ehcache</artifactId>
                <version>2.10.8</version>
            </dependency>

    二,配置xml

    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" />
        <!-- 默认缓存 -->
        <defaultCache
                maxElementsInMemory="10000"
                timeToIdleSeconds="120"
                timeToLiveSeconds="120"
                maxElementsOnDisk="10000000"
                diskExpiryThreadIntervalSeconds="120"
                memoryStoreEvictionPolicy="LRU">
            <persistence strategy="localTempSwap" />
        </defaultCache>
     
        <!-- 测试 -->
        <cache name="testcache"
               timeToIdleSeconds="5"
               timeToLiveSeconds="5"
               maxEntriesLocalHeap="10000"
               maxEntriesLocalDisk="10000000"
               diskExpiryThreadIntervalSeconds="120"
               overflowToDisk="false"
               memoryStoreEvictionPolicy="LRU">
        </cache>
    </ehcache>

    application.yml:

    spring:
      cache:
        type: ehcache
        ehcache:
          config: classpath:config/ehcache.xml

    启动类:

    添加 @EnableCaching

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

    三,创建Service / Impl

    PS:必须有Service接口,不然缓存失效

    Service:

    public interface TestService {
     
        String testCache(String str);
    }

    Impl:

    @Service
    public class TestImpl implements TestService {
        @Cacheable(value = "testcache", key = "#str")
        @Override
        public String testCache(String str) {
            int a = new Random().nextInt();
            return a+"";
        }
    }

    四,调用

    @RestController
    @RequestMapping("api/test")
    public class TestPController {
     
        @Autowired
        TestService testService;
     
     
        @ApiOperation(value = "report test")
        @RequestMapping(value = "test", method = RequestMethod.POST)
        public ApiResponse<String> test(@RequestBody ApiRequest<String> req) throws Exception {
            String a=testService.testCache(req.getData());
            return new ApiResponse<>().Success(a);
        }
     
    }
  • 相关阅读:
    vim中自动添加文件的作者、时间信息、版本等
    linux shell ipaddress
    java ant学习
    ganglia rpm安装
    深入分析 Java 中的中文编码问题
    javaIO调优
    超强的vim设置
    linux中core文件的生成和配置
    C和C++ 语言动态内存分配
    Linux的常用命令
  • 原文地址:https://www.cnblogs.com/hanjun0612/p/15767006.html
Copyright © 2011-2022 走看看