From 988ad07d348bdf9c5710645ff1bce05fc1f3ce27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A9=E7=88=B1=E6=9C=89=E6=83=85?= Date: Wed, 12 Apr 2023 08:44:26 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=9C=A8=E5=B9=B6=E5=8F=91?= =?UTF-8?q?=E5=9C=BA=E6=99=AF=E4=B8=8B=E9=AA=8C=E8=AF=81=E5=99=A8=E7=94=9F?= =?UTF-8?q?=E6=88=90=E5=A4=9A=E6=AC=A1=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/MultiImageCaptchaGenerator.java | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/main/java/cloud/tianai/captcha/generator/impl/MultiImageCaptchaGenerator.java b/src/main/java/cloud/tianai/captcha/generator/impl/MultiImageCaptchaGenerator.java index 92fa752..0163c17 100644 --- a/src/main/java/cloud/tianai/captcha/generator/impl/MultiImageCaptchaGenerator.java +++ b/src/main/java/cloud/tianai/captcha/generator/impl/MultiImageCaptchaGenerator.java @@ -18,6 +18,7 @@ import lombok.Setter; import java.util.HashMap; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; /** * @Author: 天爱有情 @@ -26,7 +27,7 @@ import java.util.Map; */ public class MultiImageCaptchaGenerator extends AbstractImageCaptchaGenerator { - protected Map imageCaptchaGeneratorMap = new HashMap<>(4); + protected Map imageCaptchaGeneratorMap = new ConcurrentHashMap<>(4); protected Map imageCaptchaGeneratorProviderMap = new HashMap<>(4); @Setter @@ -93,16 +94,14 @@ public class MultiImageCaptchaGenerator extends AbstractImageCaptchaGenerator { } public ImageCaptchaGenerator requireGetCaptchaGenerator(String type) { - ImageCaptchaGenerator imageCaptchaGenerator = imageCaptchaGeneratorMap.get(type); - if (imageCaptchaGenerator == null) { - ImageCaptchaGeneratorProvider provider = imageCaptchaGeneratorProviderMap.get(type); + ImageCaptchaGenerator imageCaptchaGenerator = imageCaptchaGeneratorMap.computeIfAbsent(type, t -> { + ImageCaptchaGeneratorProvider provider = imageCaptchaGeneratorProviderMap.get(t); if (provider == null) { - throw new IllegalArgumentException("生成验证码失败,错误的type类型:" + type); + throw new IllegalArgumentException("生成验证码失败,错误的type类型:" + t); } - imageCaptchaGenerator = imageCaptchaGeneratorMap.computeIfAbsent(type, k -> - // get and init - provider.get(getImageResourceManager(), getImageTransform()).init(initDefaultResource)); - } + return provider.get(getImageResourceManager(), getImageTransform()).init(initDefaultResource); + }); + return imageCaptchaGenerator; }