diff --git a/pom.xml b/pom.xml index 05a8106..1126b61 100644 --- a/pom.xml +++ b/pom.xml @@ -13,5 +13,13 @@ 21 UTF-8 + + + junit + junit + 4.13.2 + test + + \ No newline at end of file diff --git a/src/main/java/cn/zhangdeman/CustomExceptionEnum.java b/src/main/java/cn/zhangdeman/CustomExceptionEnum.java deleted file mode 100644 index f69bb94..0000000 --- a/src/main/java/cn/zhangdeman/CustomExceptionEnum.java +++ /dev/null @@ -1,12 +0,0 @@ -package cn.zhangdeman; - -// 自定义异常的枚举值 -public enum CustomExceptionEnum { - ; - private final Object code; // 异常状态码 - private final String message; // 异常信息 - CustomExceptionEnum(Object code, String message) { - this.code = code; - this.message = message; - } -} diff --git a/src/main/java/cn/zhangdeman/HashMapCache.java b/src/main/java/cn/zhangdeman/HashMapCache.java new file mode 100644 index 0000000..bb0b081 --- /dev/null +++ b/src/main/java/cn/zhangdeman/HashMapCache.java @@ -0,0 +1,32 @@ +package cn.zhangdeman; + +import java.util.HashMap; +import java.util.Map; + +// 基于hashmap实现的内存缓存 +// 因为就是服务启动时初始化一次, 无需考虑多线程并发安全问题 +public class HashMapCache { + // 单例: 饿汉模式 + private static final HashMapCache hashMapCache = new HashMapCache(); + private final Map cache = new HashMap<>(); + //将构造器设置为private禁止通过new进行实例化 + private HashMapCache() { + + } + public static HashMapCache getHashMapCache() { + return hashMapCache; + } + // 读取 + public String getCodeMessage(Object code) { + if (!cache.containsKey(code)) { + // 不包含指定code + return code.toString(); + } + return cache.get(code); + } + + // 添加 + public void put(Object code, String message) { + cache.put(code, message); + } +} diff --git a/src/test/java/cn/zhangdeman/HashMapCacheTest.java b/src/test/java/cn/zhangdeman/HashMapCacheTest.java new file mode 100644 index 0000000..5b1f273 --- /dev/null +++ b/src/test/java/cn/zhangdeman/HashMapCacheTest.java @@ -0,0 +1,14 @@ +package cn.zhangdeman; + +import org.junit.Assert; +import org.junit.Test; + +import static org.junit.Assert.*; + +public class HashMapCacheTest { + @Test + public void runHashMapCache() { + HashMapCache.getHashMapCache().put(200, "OK"); + Assert.assertEquals("OK", HashMapCache.getHashMapCache().getCodeMessage(200)); + } +} \ No newline at end of file