From 5f7141c09fdcfd4ed7ec6db42069133ad978880e Mon Sep 17 00:00:00 2001
From: 935090232@qq.com <ak473600000>
Date: Sun, 24 Oct 2021 00:15:07 +0800
Subject: [PATCH] 新增本地缓存方法,逐步替换redis

---
 zq-erp/src/main/java/com/matrix/system/common/init/InitWebContainer.java |   46 +++++++++++++++++++++++++++++++++++++---------
 1 files changed, 37 insertions(+), 9 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/system/common/init/InitWebContainer.java b/zq-erp/src/main/java/com/matrix/system/common/init/InitWebContainer.java
index a9f0527..fa4c035 100644
--- a/zq-erp/src/main/java/com/matrix/system/common/init/InitWebContainer.java
+++ b/zq-erp/src/main/java/com/matrix/system/common/init/InitWebContainer.java
@@ -4,16 +4,24 @@
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
 
 import javax.servlet.ServletContext;
 
 import com.matrix.core.exception.GlobleException;
 import com.matrix.core.tools.LogUtil;
 import com.matrix.core.tools.StringUtils;
+import com.matrix.core.tools.WebUtil;
 import com.matrix.system.common.bean.SysCompany;
 import com.matrix.system.common.service.SysCompanyService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.core.Ordered;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.context.ServletContextAware;
 
@@ -25,12 +33,14 @@
  * @author:姜友瑶
  * @date 2016年10月18日
  */
-@Controller
-public class InitWebContainer   implements ServletContextAware{
+@Component
+@Order(Ordered.HIGHEST_PRECEDENCE)
+public class InitWebContainer   implements ApplicationRunner {
+
+
+	private static ConcurrentMap<String,Object> localCache=new ConcurrentHashMap(60);
 
 	private static final String TRUE = "true";
-
-	private ServletContext servletContext;
 
 	static private final String LANGUAGE_ZH = "zh";
 
@@ -56,12 +66,10 @@
 	 * 
 	 *  容器启动后加载数据
 	 * @author:姜友瑶
-	 * @param sc
 	 * @date 2016年10月18日
 	 */
 	@Override
-	public void setServletContext(ServletContext sc) {
-		this.servletContext = sc;
+	public void run(ApplicationArguments args) {
 
 		// 初始化调试模式
 		initDebug();
@@ -70,7 +78,7 @@
 		//初始化公司
 		initParams();
 		LogUtil.info("\r\n\r\n**********************************************\r\n"
-				+ "* =========== Matrix启动成功 ===========\r\n" 
+				+ "* =========== 成功 ===========\r\n"
 				+ "* DEBUG模式:" + debug+"*\r\n"
 				+ "* 语言环境:" + Locale.getDefault().getLanguage()+"\r\n"
 			 
@@ -118,10 +126,30 @@
 		for (SysCompany sysCompany : company) {
 			companyMap.put(sysCompany.getComWebUrl(), sysCompany);
 		}
-		servletContext.setAttribute("companyMap", companyMap);
+		saveLocalCache("companyMap", companyMap);
 	}
 
 
+	/**
+	 * 获取本地缓存
+	 * @param key
+	 * @param <T>
+	 * @return
+	 */
+	public static <T> T getLocalCache(String key){
+		return (T)localCache.get(key);
+	}
+
+	/**
+	 * 保存一个本地缓存
+	 * @param key
+	 * @param value
+	 */
+	public static void saveLocalCache(String key,Object value){
+		  if(null!=localCache.put(key,value)){
+		  	LogUtil.debug("覆盖原有缓存{}",key);
+		  }
+	}
 
 
 }

--
Gitblit v1.9.1