From d4f6ec39b7e0421757a6b9d1a68b1c4610ea2e8c Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期四, 14 三月 2024 14:54:20 +0800 Subject: [PATCH] 优化CivilCode缓存 --- src/main/java/com/genersoft/iot/vmp/conf/CivilCodeFileConf.java | 37 ++++++++----------------------------- 1 files changed, 8 insertions(+), 29 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/conf/CivilCodeFileConf.java b/src/main/java/com/genersoft/iot/vmp/conf/CivilCodeFileConf.java index 20b6eef..8449ebb 100644 --- a/src/main/java/com/genersoft/iot/vmp/conf/CivilCodeFileConf.java +++ b/src/main/java/com/genersoft/iot/vmp/conf/CivilCodeFileConf.java @@ -1,7 +1,7 @@ package com.genersoft.iot.vmp.conf; import com.genersoft.iot.vmp.common.CivilCodePo; -import org.ehcache.impl.internal.concurrent.ConcurrentHashMap; +import com.genersoft.iot.vmp.utils.CivilCodeUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -17,7 +17,8 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.nio.file.Files; -import java.util.Map; +import java.util.ArrayList; +import java.util.List; /** * 鍚姩鏃惰鍙栬鏀垮尯鍒掕〃 @@ -27,8 +28,6 @@ public class CivilCodeFileConf implements CommandLineRunner { private final static Logger logger = LoggerFactory.getLogger(CivilCodeFileConf.class); - - private final Map<String, CivilCodePo> civilCodeMap= new ConcurrentHashMap<>(); @Autowired @Lazy @@ -62,6 +61,7 @@ BufferedReader inputStreamReader = new BufferedReader(new InputStreamReader(inputStream)); int index = -1; String line; + List<CivilCodePo> civilCodePoList = new ArrayList<>(); while ((line = inputStreamReader.readLine()) != null) { index ++; if (index == 0) { @@ -69,36 +69,15 @@ } String[] infoArray = line.split(","); CivilCodePo civilCodePo = CivilCodePo.getInstance(infoArray); - civilCodeMap.put(civilCodePo.getCode(), civilCodePo); + civilCodePoList.add(civilCodePo); } + CivilCodeUtil.INSTANCE.add(civilCodePoList); inputStreamReader.close(); inputStream.close(); - if (civilCodeMap.size() == 0) { + if (civilCodePoList.isEmpty()) { logger.warn("[琛屾斂鍖哄垝] 鏂囦欢鍐呭涓虹┖锛屽彲鑳介�犳垚鐩綍鍒锋柊缁撴灉涓嶅畬鏁�"); }else { - logger.info("[琛屾斂鍖哄垝] 鍔犺浇鎴愬姛锛屽叡鍔犺浇鏁版嵁{}鏉�", civilCodeMap.size()); + logger.info("[琛屾斂鍖哄垝] 鍔犺浇鎴愬姛锛屽叡鍔犺浇鏁版嵁{}鏉�", civilCodePoList.size()); } } - - public CivilCodePo getParentCode(String code) { - if (code.length() > 8) { - return null; - } - if (code.length() == 8) { - String parentCode = code.substring(0, 6); - return civilCodeMap.get(parentCode); - }else { - CivilCodePo civilCodePo = civilCodeMap.get(code); - if (civilCodePo == null){ - return null; - } - String parentCode = civilCodePo.getParentCode(); - if (parentCode == null) { - return null; - } - return civilCodeMap.get(parentCode); - } - - } - } -- Gitblit v1.8.0