935090232@qq.com
2021-10-25 207ee5e38bf61343d8a4f0ac88936798593a79e7
新增本地缓存方法,逐步替换redis
1 files added
5 files modified
113 ■■■■ changed files
zq-erp/src/main/java/com/matrix/component/asyncmessage/AsyncMessageManager.java 4 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/component/asyncmessage/MessageHandler.java 3 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/config/RabbitMqConfig.java 5 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/common/init/InitWebContainer.java 23 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/common/init/LocalCache.java 75 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/common/interceptor/HostInterceptor.java 3 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/component/asyncmessage/AsyncMessageManager.java
@@ -40,10 +40,6 @@
    private Map<String, List<MessageHandler>> routes;
    private Map<String, ReentrantLock> lockMap = new HashMap<>();
    private Map<String, ConcurrentLinkedQueue> messageQueue = new HashMap<>();
    @Override
    public void run(ApplicationArguments args) throws Exception {
zq-erp/src/main/java/com/matrix/component/asyncmessage/MessageHandler.java
@@ -26,7 +26,8 @@
    String getName();
    /**
     * 返回任务的路由key
     * 返回任务的路由key,当有对应key的事件发生时,消息管理器会触发handle方法。
     * key 支持正则表达式
     * @return
     */
    String getRouteKey();
zq-erp/src/main/java/com/matrix/config/RabbitMqConfig.java
@@ -18,7 +18,10 @@
import java.util.ArrayList;
import java.util.List;
@Configuration
/**
 * 小型应用弃用rabbitmq,直接通过观察者模式对消息进行同步消费 参考 AsyncMessageManager
 */
//@Configuration
public class RabbitMqConfig {
    @Value("${rabbitmq.host}")
zq-erp/src/main/java/com/matrix/system/common/init/InitWebContainer.java
@@ -38,8 +38,6 @@
public class InitWebContainer   implements ApplicationRunner {
    private static ConcurrentMap<String,Object> localCache=new ConcurrentHashMap(60);
    private static final String TRUE = "true";
    static private final String LANGUAGE_ZH = "zh";
@@ -126,30 +124,11 @@
        for (SysCompany sysCompany : company) {
            companyMap.put(sysCompany.getComWebUrl(), sysCompany);
        }
        saveLocalCache("companyMap", companyMap);
        LocalCache.save("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);
          }
    }
}
zq-erp/src/main/java/com/matrix/system/common/init/LocalCache.java
New file
@@ -0,0 +1,75 @@
package com.matrix.system.common.init;
import com.matrix.core.tools.LogUtil;
import java.util.Date;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
public class LocalCache {
    private static ConcurrentMap<String,Value> localCache=new ConcurrentHashMap(60);
    /**
     * 获取本地缓存
     * @param key
     * @param <T>
     * @return
     */
    public static <T> T get(String key){
        return (T)localCache.get(key);
    }
    /**
     * 保存一个本地缓存
     * @param key
     * @param value
     */
    public static void save(String key,Object value){
        if(null!=localCache.put(key,value)){
            LogUtil.debug("覆盖原有缓存{}",key);
        }
    }
    public static void save(String key,Object value,long timeOut){
        if(null!=localCache.put(key,value)){
            LogUtil.debug("覆盖原有缓存{}",key);
        }
    }
    /**
     * 缓存对象
     */
     class Value{
        /**
         * 过期时间,0 表示不过期
         */
      private long timeOut=0;
        /**
         * 缓存值
         */
      private Object value;
        /**
         * 缓存创建时间
         */
      private long createTime;
      public static Value build(String value,long timeOut){
          Value instances=new Value();
          instances.createTime=System.currentTimeMillis();
          instances.value=value;
          instances.timeOut=timeOut;
          return instances;
      }
    }
}
zq-erp/src/main/java/com/matrix/system/common/interceptor/HostInterceptor.java
@@ -5,6 +5,7 @@
import com.matrix.core.tools.WebUtil;
import com.matrix.system.common.bean.SysCompany;
import com.matrix.system.common.init.InitWebContainer;
import com.matrix.system.common.init.LocalCache;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
@@ -46,7 +47,7 @@
            return false;
        }
        Map<String, SysCompany> companyMap = InitWebContainer.getLocalCache("companyMap");
        Map<String, SysCompany> companyMap = LocalCache.get("companyMap");
        SysCompany company=companyMap.get(host);
        if(Objects.nonNull(company)){
            // 查到公司后存到sesssion中