当前位置: 首页 > news >正文

邯郸个人网站建设搞笑图片制作在线生成器

邯郸个人网站建设,搞笑图片制作在线生成器,排版设计是什么工作,新网域名网站简介 在 Spring Boot 中,你可以使用多种方法来实现自动删除超时元素的 List 或 Map。以下是两种常见的方式: 如果你需要简单的功能并且不介意引入外部依赖,可以选择 Guava Cache。如果你想要更灵活的控制,使用 Spring 的调度功能…

简介

在 Spring Boot 中,你可以使用多种方法来实现自动删除超时元素的 List 或 Map。以下是两种常见的方式:

  • 如果你需要简单的功能并且不介意引入外部依赖,可以选择 Guava Cache。
  • 如果你想要更灵活的控制,使用 Spring 的调度功能也是一个不错的选择。

1. 使用 Scheduled Task

你可以使用 Spring 的 @Scheduled 注解来定期清理过期的元素。

import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;import java.util.Iterator;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;@Component
@EnableScheduling
public class CacheManager {//by https://zhengkai.blog.csdn.net/// 存储数据的 Map,使用 ConcurrentHashMap 以支持并发private final Map<String, Long> cacheMap = new ConcurrentHashMap<>();// 添加元素,设置当前时间戳public void put(String key) {cacheMap.put(key, System.currentTimeMillis());}// 定期清理超时元素@Scheduled(fixedRate = 60000) // 每分钟执行一次public void cleanUp() {long currentTime = System.currentTimeMillis();long timeout = 30 * 60 * 1000; // 30 分钟超时Iterator<Map.Entry<String, Long>> iterator = cacheMap.entrySet().iterator();while (iterator.hasNext()) {Map.Entry<String, Long> entry = iterator.next();if (currentTime - entry.getValue() > timeout) {iterator.remove(); // 删除超时元素}}}// 获取元素public Boolean get(String key) {return cacheMap.containsKey(key);}
}

在上面的代码中,我们创建了一个 CacheManager 类,它使用 ConcurrentHashMap 来存储元素及其添加时间。@Scheduled 注解用于定义定期清理超时元素的任务。定期任务每分钟执行一次,检查并删除 30 分钟之前添加的元素。

2. 使用 Guava Cache

如果你希望更简单地管理缓存,可以使用 Guava 的 Cache。它提供了过期策略的支持。

示例代码

首先,确保在 pom.xml 中添加 Guava 依赖:

<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
<dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>33.3.1-jre</version>
</dependency>

然后,使用 Guava Cache:

import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;
import org.springframework.stereotype.Component;import javax.annotation.PostConstruct;
import java.util.concurrent.TimeUnit;@Component
public class CacheManager {private Cache<String, String> cache;@PostConstructpublic void init() {// 创建一个支持过期的缓存,30分钟后过期。 by https://zhengkai.blog.csdn.net/cache = CacheBuilder.newBuilder().expireAfterWrite(30, TimeUnit.MINUTES).build();}// 添加元素public void put(String key, String value) {cache.put(key, value);}// 获取元素public String get(String key) {return cache.getIfPresent(key);}
}

在这个例子中,我们使用 Guava 的 CacheBuilder 创建了一个具有 30 分钟自动过期策略的缓存。使用 put 方法可以添加元素,而使用 getIfPresent 方法可以获取当前元素。

http://www.yayakq.cn/news/284270/

相关文章:

  • 网站建设合同报价从用户角度网站应该具备的条件
  • 高端网站定制策划企业网站源码cms
  • 广东省网站免备案新出的网络游戏排行榜
  • 新能源网站开发wordpress图片延缓插件
  • 网站建设全包公司推荐外国好的设计网站大全
  • 外贸建设企业网站服务重庆制作网站首页
  • 如何建好一个网站重庆建设工程信息网注销账号怎么注销
  • 网站开发月薪校园网站建设标书
  • ps做网站字体用多大的百度网站开发语言
  • 用凡科做网站好弄吗南昌网站开发建设
  • 火速网站建设深圳网站建设luony
  • 宁波网站免费制作wordpress+用户中心插件
  • 怎么做装修网站平台韩国原生ip站群服务器
  • 网站做淘宝客有什么要求网站轮播图
  • 影楼网站模板全国加盟网站官网
  • 温州外经贸局网站百度极速版app下载安装
  • 专门做装修的网站有哪些WordPress给文章添加省份
  • phpcms 移动网站模板wordpress+HTML5游戏
  • 网站怎么管理维护网站优化服务合同
  • 做ic用什么网站沐风seo
  • 丽水哪里做网站深圳公司排名前十名
  • 如何搜索易思cms做的网站wordpress 主题数据
  • 许昌定制网站建设代理wordpress 注册填密码
  • 自己做衣服的网站圣都装饰全国排名
  • 有货 那样的网站怎么做宁波建设网证书查询平台
  • 做网站的软件帝国灌云住房和城乡建设网站
  • 目前做哪个网站致富网站自适应框架
  • 网站过场动画企业网app下载
  • 商城网站策划方案种子搜索网站怎么做的
  • 用国外服务器做违法网站网站建设专属名词