Pārlūkot izejas kodu

工具类更新

Heyuan 6 mēneši atpakaļ
vecāks
revīzija
ce5987dff0

+ 0 - 54
src/com/kingdee/eas/custom/sso/ExpiringMapCache.java

@@ -1,54 +0,0 @@
-package com.kingdee.eas.custom.sso;
-
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
-
-/**
- * 带过期时间的Map
- *
- * @param <K>
- * @param <V>
- */
-public class ExpiringMapCache<K, V> {
-    private final Map<K, CacheValue<V>> cache = new ConcurrentHashMap<>();
-    private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
-
-    public ExpiringMapCache() {
-        scheduler.scheduleAtFixedRate(() -> {
-            long currentTime = System.currentTimeMillis();
-            cache.entrySet().removeIf(entry -> currentTime >= entry.getValue().expiryTime);
-        }, 1, 1, TimeUnit.SECONDS); // 每秒检查过期
-    }
-
-    public void put(K key, V value, long durationInMillis) {
-        long expiryTime = System.currentTimeMillis() + durationInMillis;
-        cache.put(key, new CacheValue<>(value, expiryTime));
-    }
-
-    public V get(K key) {
-        CacheValue<V> cacheValue = cache.get(key);
-        if (cacheValue != null && System.currentTimeMillis() < cacheValue.expiryTime) {
-            return cacheValue.value;
-        }
-        cache.remove(key); // 删除已过期的条目
-        return null;
-    }
-
-    public void shutdown() {
-        scheduler.shutdown();
-    }
-
-    private static class CacheValue<V> {
-        private final V value;
-        private final long expiryTime;
-
-        public CacheValue(V value, long expiryTime) {
-            this.value = value;
-            this.expiryTime = expiryTime;
-        }
-    }
-}
-

+ 7 - 10
src/com/kingdee/eas/utils/ExpiringMapCache.java

@@ -1,4 +1,4 @@
-package com.kingdee.eas.utils;
+package com.kingdee.eas.custom.sso;
 
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
@@ -6,6 +6,12 @@ import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 
+/**
+ * ´ø¹ýÆÚʱ¼äµÄMap
+ *
+ * @param <K>
+ * @param <V>
+ */
 public class ExpiringMapCache<K, V> {
     private final Map<K, CacheValue<V>> cache = new ConcurrentHashMap<>();
     private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
@@ -44,14 +50,5 @@ public class ExpiringMapCache<K, V> {
             this.expiryTime = expiryTime;
         }
     }
-
-    public static void main(String[] args) throws InterruptedException {
-        ExpiringMapCache<String,String> cache = new ExpiringMapCache<>();
-        cache.put("111","AAA",2000);
-        while(true){
-            System.out.println(cache.get("111"));
-            Thread.sleep(1000);
-        }
-    }
 }