From cab1cade773b901de6b861e254bf693128c0fe50 Mon Sep 17 00:00:00 2001 From: Looly Date: Thu, 18 Apr 2024 16:34:39 +0800 Subject: [PATCH] =?UTF-8?q?CacheUtil.newTimedCache=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=9C=89schedulePruneDelay=E5=8F=82=E6=95=B0=E7=9A=84=E9=87=8D?= =?UTF-8?q?=E8=BD=BD=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 3 +- .../main/java/cn/hutool/cache/CacheUtil.java | 75 ++++++++++++------- 2 files changed, 48 insertions(+), 30 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 78e647787..1f248db74 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ # 🚀Changelog ------------------------------------------------------------------------------------------------------------- -# 5.8.28(2024-04-16) +# 5.8.28(2024-04-18) ### 🐣新特性 * 【core 】 修正XmlUtil的omitXmlDeclaration描述注释(issue#I9CPC7@Gitee) @@ -10,6 +10,7 @@ * 【extra 】 设置jsch登录认证方式,跳过Kerberos身份验证(pr#3530@Github) * 【extra 】 增加设置验证码大小和针对alias注释(pr#3533@Github) * 【json 】 JSONConfig增加setWriteLongAsString可选是否将Long写出为String类型(issue#3541@Github) +* 【cache 】 CacheUtil.newTimedCache增加有schedulePruneDelay参数的重载方法(issue#I9HO25@Gitee) ### 🐞Bug修复 * 【http 】 修复HttpUtil.urlWithFormUrlEncoded方法重复编码问题(issue#3536@Github) diff --git a/hutool-cache/src/main/java/cn/hutool/cache/CacheUtil.java b/hutool-cache/src/main/java/cn/hutool/cache/CacheUtil.java index b9318d91b..31b93cde8 100755 --- a/hutool-cache/src/main/java/cn/hutool/cache/CacheUtil.java +++ b/hutool-cache/src/main/java/cn/hutool/cache/CacheUtil.java @@ -9,58 +9,59 @@ import cn.hutool.cache.impl.WeakCache; /** * 缓存工具类 + * * @author Looly - *@since 3.0.1 + * @since 3.0.1 */ public class CacheUtil { /** * 创建FIFO(first in first out) 先进先出缓存. * - * @param Key类型 - * @param Value类型 + * @param Key类型 + * @param Value类型 * @param capacity 容量 - * @param timeout 过期时长,单位:毫秒 + * @param timeout 过期时长,单位:毫秒 * @return {@link FIFOCache} */ - public static FIFOCache newFIFOCache(int capacity, long timeout){ + public static FIFOCache newFIFOCache(int capacity, long timeout) { return new FIFOCache<>(capacity, timeout); } /** * 创建FIFO(first in first out) 先进先出缓存. * - * @param Key类型 - * @param Value类型 + * @param Key类型 + * @param Value类型 * @param capacity 容量 * @return {@link FIFOCache} */ - public static FIFOCache newFIFOCache(int capacity){ + public static FIFOCache newFIFOCache(int capacity) { return new FIFOCache<>(capacity); } /** * 创建LFU(least frequently used) 最少使用率缓存. * - * @param Key类型 - * @param Value类型 + * @param Key类型 + * @param Value类型 * @param capacity 容量 - * @param timeout 过期时长,单位:毫秒 + * @param timeout 过期时长,单位:毫秒 * @return {@link LFUCache} */ - public static LFUCache newLFUCache(int capacity, long timeout){ + public static LFUCache newLFUCache(int capacity, long timeout) { return new LFUCache<>(capacity, timeout); } /** * 创建LFU(least frequently used) 最少使用率缓存. * - * @param Key类型 - * @param Value类型 + * @param Key类型 + * @param Value类型 * @param capacity 容量 * @return {@link LFUCache} */ - public static LFUCache newLFUCache(int capacity){ + public static LFUCache newLFUCache(int capacity) { return new LFUCache<>(capacity); } @@ -68,50 +69,66 @@ public class CacheUtil { /** * 创建LRU (least recently used)最近最久未使用缓存. * - * @param Key类型 - * @param Value类型 + * @param Key类型 + * @param Value类型 * @param capacity 容量 - * @param timeout 过期时长,单位:毫秒 + * @param timeout 过期时长,单位:毫秒 * @return {@link LRUCache} */ - public static LRUCache newLRUCache(int capacity, long timeout){ + public static LRUCache newLRUCache(int capacity, long timeout) { return new LRUCache<>(capacity, timeout); } /** * 创建LRU (least recently used)最近最久未使用缓存. * - * @param Key类型 - * @param Value类型 + * @param Key类型 + * @param Value类型 * @param capacity 容量 * @return {@link LRUCache} */ - public static LRUCache newLRUCache(int capacity){ + public static LRUCache newLRUCache(int capacity) { return new LRUCache<>(capacity); } + /** + * 创建定时缓存,通过定时任务自动清除过期缓存对象 + * + * @param Key类型 + * @param Value类型 + * @param timeout 过期时长,单位:毫秒 + * @param schedulePruneDelay 间隔时长,单位毫秒 + * @return {@link TimedCache} + * @since 5.8.28 + */ + public static TimedCache newTimedCache(long timeout, long schedulePruneDelay) { + final TimedCache cache = newTimedCache(timeout); + cache.schedulePrune(schedulePruneDelay); + return cache; + } + /** * 创建定时缓存. * - * @param Key类型 - * @param Value类型 + * @param Key类型 + * @param Value类型 * @param timeout 过期时长,单位:毫秒 * @return {@link TimedCache} */ - public static TimedCache newTimedCache(long timeout){ + public static TimedCache newTimedCache(long timeout) { return new TimedCache<>(timeout); } /** * 创建弱引用缓存. * - * @param Key类型 - * @param Value类型 + * @param Key类型 + * @param Value类型 * @param timeout 过期时长,单位:毫秒 * @return {@link WeakCache} * @since 3.0.7 */ - public static WeakCache newWeakCache(long timeout){ + public static WeakCache newWeakCache(long timeout) { return new WeakCache<>(timeout); } @@ -122,7 +139,7 @@ public class CacheUtil { * @param Value类型 * @return {@link NoCache} */ - public static NoCache newNoCache(){ + public static NoCache newNoCache() { return new NoCache<>(); } }