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

网站建设 团队四年级说新闻2023

网站建设 团队,四年级说新闻2023,成都市房产管理局官网,河北邢台做移动网站简介 在 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.yidumall.com/news/67648.html

相关文章:

  • 摩洛哥网站后缀正规电商平台有哪些
  • 大学生创业做创意宿舍装修网站深圳搜索引擎
  • 网站建设中 英文手机网站搜索优化
  • 苗木企业网站建设源代码百度搜索数据统计
  • 沧州瑞智网站建设网站报价
  • 在哪个网站上做蓝思测评谷歌seo优化公司
  • 好的手机网站推荐cpv广告联盟
  • 外贸网站建设公司方案seo的优化方案
  • 视频网站分享复制通用代码怎么做seo优化诊断工具
  • 可以上传资源的网站开发费用google建站推广
  • html网站支付链接怎么做的windows优化大师有什么功能
  • 邢台网站制作地方百度推广开户代理商
  • 网站建设服务有哪些上海优化营商环境
  • 天津代理注册公司seo搜索优化
  • 保定网站建设优化怎么在百度上注册店铺
  • 工业软件界面设计谷歌seo什么意思
  • 时时彩网站制作南宁seo标准
  • 站长工具爱站网网络推广法
  • 网站不备案能解析吗短视频推广渠道
  • sem网络推广是什么seo就业指导
  • 如何设计购物网站软文广告投放平台
  • 黑牛网站建设网站友情链接
  • iis 配置网站详解b站24小时自助下单平台网站
  • 虚拟产品网站百度搜索排名怎么靠前
  • 专做会议推广的网站电商运营推广
  • 张云网站建设今日头条极速版最新
  • 大连做网站公司seo快速排名的方法
  • 专业的魔站建站系统建站系统哪个好
  • 新疆建设兵团十四师网站是多少钱seo优化排名教程百度技术
  • 企业网站建设产品设计书网络服务器是指什么