文章目录

  • 1.引入依赖:
  • 2.缓存配置
  • 3.控制器



1.引入依赖:

<dependency>
        <groupId>com.github.ben-manes.caffeine</groupId>
        <artifactId>caffeine</artifactId>
        <version>2.9.0</version>
    </dependency>

2.缓存配置

@Configuration
public class CacheConfig {

    long accessToken = 1;

    long refreshToken = 2;

    @Bean
    public Cache<String, Object> accessToken() {
        return Caffeine.newBuilder()
                // 设置最后一次写入后经过固定时间过期
                .expireAfterWrite(accessToken, TimeUnit.MINUTES)
                // 初始的缓存空间大小
                .initialCapacity(15000)
                // 缓存的最大条数
                .maximumSize(15000)
                .build();
    }

    @Bean
    public Cache<String, Object> refreshToken() {
        return Caffeine.newBuilder()
                // 设置最后一次写入后经过固定时间过期
                .expireAfterWrite(refreshToken, TimeUnit.MINUTES)
                // 初始的缓存空间大小
                .initialCapacity(15000)
                // 缓存的最大条数
                .maximumSize(15000)
                .build();

    }
}

3.控制器

代码如下(示例):

import com.github.benmanes.caffeine.cache.Cache;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class EasyController {

    @Autowired
    Cache<String, Object> accessToken;

    @Autowired
    Cache<String, Object> refreshToken;

    @GetMapping("/put")
    public void set(@RequestParam String code) {
        refreshToken.put("code",code);
        Object str = refreshToken.asMap().get("code");
        //String str = (String) refreshToken.asMap().get("code");
        System.out.println(str);
    }

    @GetMapping("/get")
    public Object get(){
        Object code = refreshToken.asMap().get("code");
        return  code;
    }
    

}