文章目录
- 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;
}
}