• SpringBoot集成Caffeine作本地缓存


    1. 依赖引入
    spring-cache
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-cache</artifactId>
    </dependency>
    
    caffeine
    <dependency>
        <groupId>com.github.ben-manes.caffeine</groupId>
        <artifactId>caffeine</artifactId>
    </dependency>
    
    1. 参数配置(一般配置可以完全放在yaml文件内,不用专门写配置bean)
    spring:
      cache:
        type: caffeine
        cache-names: 'ruleCache'
        caffeine:
          spec: initialCapacity=1000, maximumSize=18000, expireAfterAccess=20D
    
    1. 缓存逻辑编写
    package com.cfuture.dataqualitycontrol.service.impl;
    
    import com.cfuture.dataqualitycontrol.domain.po.Rule;
    import com.cfuture.dataqualitycontrol.service.RuleService;
    import org.springframework.cache.annotation.CacheEvict;
    import org.springframework.cache.annotation.CachePut;
    import org.springframework.cache.annotation.Cacheable;
    import org.springframework.stereotype.Service;
    
    /**
     * @author yangjx
     * @date 2021/1/21 14:04
     * @description
     */
    @Service
    public class RuleServiceImpl implements RuleService {
    
        @Override
        @CachePut(value = "ruleCache", key = "#rule.id")
        public Rule addRule(Rule rule) {
            return rule;  // 必须返回被缓存对象
        }
    
        @Override
        @Cacheable(value = "ruleCache", key = "#id")
        public Rule getRule(Long id) {
            Rule rule = Rule.builder().expression(String.valueOf(id)).message(String.valueOf(System.currentTimeMillis())).build();
            rule.setId(id);
            return rule;  // 必须返回被缓存对象
        }
    
        @Override
        @CacheEvict(value = "ruleCache", key = "#id")
        public boolean deleteRule(Long id) {
            return true;
        }
    
        @Override
        @CachePut(value = "ruleCache", key = "#rule.id")
        public Rule updateRule(Rule rule) {
            return rule;  // 必须返回被缓存对象
        }
    
    }
    
    学习使我充实,分享给我快乐!
  • 相关阅读:
    android widgets控件
    android test控件
    android layout
    android build.gradle
    android studio AndroidManifest
    android studio settings
    (2)git本地生成SSH关联github
    (1)git
    bzoj2286 (sdoi2011)消耗战(虚树)
    Tree 树(树形期望dp)
  • 原文地址:https://www.cnblogs.com/JaxYoun/p/14313070.html
Copyright © 2020-2023  润新知