From f65d896a1e2cdd1d019c283e20998808a8e3b5e7 Mon Sep 17 00:00:00 2001 From: "everywhere.z" Date: Wed, 31 Jan 2024 13:59:01 +0800 Subject: [PATCH] =?UTF-8?q?enhancement=20#I905AD=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E6=B3=A8=E8=A7=A3=E7=9A=84=E8=8E=B7=E5=8F=96=E9=80=9F=E5=BA=A6?= =?UTF-8?q?=EF=BC=8C=E4=BC=98=E5=8C=96=E6=80=A7=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yomahub/liteflow/annotation/util/AnnoUtil.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/annotation/util/AnnoUtil.java b/liteflow-core/src/main/java/com/yomahub/liteflow/annotation/util/AnnoUtil.java index ab86d02ea..3074c4bb2 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/annotation/util/AnnoUtil.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/annotation/util/AnnoUtil.java @@ -3,6 +3,7 @@ package com.yomahub.liteflow.annotation.util; import cn.hutool.core.annotation.AnnotationUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ReflectUtil; +import cn.hutool.core.util.StrUtil; import com.yomahub.liteflow.annotation.LFAliasFor; import java.lang.annotation.Annotation; @@ -10,15 +11,25 @@ import java.lang.reflect.AnnotatedElement; import java.util.Arrays; import java.util.HashMap; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; /** * 注解工具类 + * 此工具类带缓存 * * @author Bryan.Zhang */ public class AnnoUtil { + private static Map annoCacheMap = new ConcurrentHashMap<>(); + public static A getAnnotation(AnnotatedElement annotatedElement, Class annotationType) { + String cacheKey = StrUtil.format("{}-{}", annotatedElement, annotationType.getSimpleName()); + + if (annoCacheMap.containsKey(cacheKey)){ + return (A)annoCacheMap.get(cacheKey); + } + A annotation = AnnotationUtil.getAnnotation(annotatedElement, annotationType); if (ObjectUtil.isNull(annotation)) { return null; @@ -42,6 +53,8 @@ public class AnnoUtil { } }); + annoCacheMap.put(cacheKey, annotation); + return annotation; } @@ -53,5 +66,4 @@ public class AnnoUtil { return null; } } - }