zoukankan      html  css  js  c++  java
  • Springboot 在项目启动时将数据缓存到全局变量

    有写字典数据不会频繁更新,但是会频繁查询,想要减少数据库链接次数,把内容缓存到项目的全局变量中,提高方法查询速度

     
    import javax.annotation.PostConstruct;
    import javax.annotation.PreDestroy;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
     
    @Component
    public class CodeCache {
        public static Map<String, TownNameDto> codeMap = new HashMap<String, TownNameDto>();
        public static Map<String, CompanyModel> companyMap = new HashMap<String, CompanyModel>();
     
        @Autowired
        private CityDao cityDao;
        @Autowired
        private CompanyDao companyDao;
     
     
        @PostConstruct
        public void init() {
            //系统启动中。。。加载codeMap
            List<TownNameDto> codeList = cityDao.selectCityNameAndCodeALL();
            for (TownNameDto code : codeList) {
                codeMap.put(code.getTownCode() + code.getValue(), code);
            }
            List<CompanyModel> companyModels = companyDao.selectCompanies();
            for (CompanyModel company : companyModels) {
                companyMap.put(company.getCode(), company);
            }
     
     
        }
     
        @PreDestroy
        public void destroy() {
            //系统运行结束
        }
     
        @Scheduled(cron = "0 0 0/2 * * ?")
        public void testOne() {
            //每2小时执行一次缓存
            init();
        }
     
    }

    使用:

    //从缓存中获取城市;
            Map<String, TownNameDto> cityModelMap = CodeCache.codeMap;
            Map<String, CompanyModel> companyModelMap = CodeCache.companyMap;

    转自:https://blog.csdn.net/Alice_qixin/article/details/101547611

  • 相关阅读:
    ios 集成react native
    聊聊职场潜规则
    cocopods 问题
    微信小程序实现给循环列表添加点击样式实例
    Android build.gradle
    小程序开发的40个技术窍门,纯干货!
    react-创建组件
    React Native在开发过程中遇到的一些问题(俗称:坑)
    微信小程序 开发过程中遇到的坑(一)
    微信小程序开源项目库汇总
  • 原文地址:https://www.cnblogs.com/dcrenl/p/14005001.html
Copyright © 2011-2022 走看看