GlobalCache 工具类
package com.neo.config;
import org.springframework.stereotype.Component;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
@Component
public class GlobalCache {
private Map<String, Object> cacheMap;
private ScheduledExecutorService executorService;
public GlobalCache() {
this.cacheMap = new ConcurrentHashMap<>();
this.executorService = Executors.newSingleThreadScheduledExecutor();
}
public void put(String key, Object value, long expiringTime, TimeUnit timeUnit) {
this.cacheMap.put(key, value);
this.executorService.schedule(() -> this.cacheMap.remove(key), expiringTime, timeUnit);
}
public Object get(String key) {
return this.cacheMap.get(key);
}
public void remove(String key) {
this.cacheMap.remove(key);
}
public void clear() {
this.cacheMap.clear();
}
public void stop() {
this.executorService.shutdown();
}
public static void main(String[] args) throws InterruptedException {
GlobalCache cache = new GlobalCache();
cache.put("key1", "value1", 2, TimeUnit.SECONDS);
System.out.println(cache.get("key1")); // value1
Thread.sleep(3000);
System.out.println(cache.get("key1")); // null
cache.stop();
}
}
GlobalCache 工具类的更多相关文章
- Java基础Map接口+Collections工具类
1.Map中我们主要讲两个接口 HashMap 与 LinkedHashMap (1)其中LinkedHashMap是有序的 怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...
- Android—关于自定义对话框的工具类
开发中有很多地方会用到自定义对话框,为了避免不必要的城府代码,在此总结出一个工具类. 弹出对话框的地方很多,但是都大同小异,不同无非就是提示内容或者图片不同,下面这个类是将提示内容和图片放到了自定义函 ...
- [转]Java常用工具类集合
转自:http://blog.csdn.net/justdb/article/details/8653166 数据库连接工具类——仅仅获得连接对象 ConnDB.java package com.ut ...
- js常用工具类.
一些js的工具类 复制代码 /** * Created by sevennight on 15-1-31. * js常用工具类 */ /** * 方法作用:[格式化时间] * 使用方法 * 示例: * ...
- Guava库介绍之实用工具类
作者:Jack47 转载请保留作者和原文出处 欢迎关注我的微信公众账号程序员杰克,两边的文章会同步,也可以添加我的RSS订阅源. 本文是我写的Google开源的Java编程库Guava系列之一,主要介 ...
- Java程序员的日常—— Arrays工具类的使用
这个类在日常的开发中,还是非常常用的.今天就总结一下Arrays工具类的常用方法.最常用的就是asList,sort,toStream,equals,copyOf了.另外可以深入学习下Arrays的排 ...
- .net使用正则表达式校验、匹配字符工具类
开发程序离不开数据的校验,这里整理了一些数据的校验.匹配的方法: /// <summary> /// 字符(串)验证.匹配工具类 /// </summary> public c ...
- WebUtils-网络请求工具类
网络请求工具类,大幅代码借鉴aplipay. using System; using System.Collections.Generic; using System.IO; using System ...
- JAVA 日期格式工具类DateUtil.java
DateUtil.java package pers.kangxu.datautils.utils; import java.text.SimpleDateFormat; import java.ut ...
- 安卓---Toast工具类,有点懒
package com.liunan.myfirstapp.util; import android.content.Context; import android.widget.Toast; /** ...
随机推荐
- vue3 基础-常用模板语法
一个 vue 的单文件 SAP ( single page web application ) 即在一个 .vue 为后缀的文件中, 会包含3个部分. 模板: html 逻辑: javascript ...
- Flutter对于移动端软件跨平台后台保活的技术浅析
@charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 18px; o ...
- Vue中的APP与js的对象字面量
JavaScript的对象字面量是一种方便创建和初始化对象的语法.它允许您直接在代码中定义对象,而无需使用类或构造函数.对象字面量使用大括号{}括起来,并包含零个或多个键值对. 以下是JavaScri ...
- 我的Vue之旅(3)
2020-10-24 程序员节快乐哈! 因为有相当一部分内容都是相互穿插的,今天也就不写那么多重复的Demo了,直接写一下对所学内容的理解吧. 插值 关于插值这一块其实也没啥说的,文本插值都是最熟悉不 ...
- ArkUI-X添加到现有Android项目中
本教程主要讲述如何利用ArkUI-X SDK完成Android AAR开发,实现基于ArkTS的声明式开发范式在android平台显示.包括: 1.跨平台Library工程开发介绍 2.AAR在And ...
- 构建具备推理与反思能力的高级 Prompt:LLM 智能代理设计指南
在构建强大的 AI 系统,尤其是基于大语言模型(LLM)的智能代理(Agent)时,Prompt 设计的质量决定了系统的智能程度.传统 Prompt 通常是简单的问答或填空式指令,而高级任务需要更具结 ...
- CSP-J/S第一轮初赛 ~持续更新~
CSP-J/S初赛 2022更新的初赛知识汇总 基础算法 链表 插入删除数据,操作数据O(1),遍历是O(n),可以进行动态调整. 指针指向的是上下节点,链表储存 数据 下一个节点 上一个节点. 动态 ...
- Oracle DBA必备工具:自动调整重做日志文件大小和数量
我们的文章会在微信公众号Oracle恢复实录和博客网站(www.htz.pw)同步更新 ,欢迎关注收藏.也欢迎大家转载,但请在文章开始处标注文章出处,谢谢! 由于博客中包含大量代码,建议通过网页浏览以 ...
- 前后端分别判断两个数组 A数组有的元素B数据没有
前端: FilterData(a, b) { //循环判断数组a里的元素在b里面有没有,有的话就放入新建立的数组中 //a有 b没有 var result = new Array(); var c = ...
- Golang基础笔记三之数组和切片
本文首发于公众号:Hunter后端 原文链接:Golang基础笔记三之数组和切片 这一篇笔记介绍 Golang 里的数组和切片,以下是本篇笔记目录: 数组定义和初始化 数组属性和相关操作 切片的创建 ...