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

  • 相关阅读:
    晕,又要学新东西了!
    十一之旅(1)
    结束放假◎!
    容颜总有一天会慢慢老去
    JS里在光标位置插入字符
    放假啦,暂别七天
    好久没来,小小的Happy一下
    唉唉唉
    关于Timer使用,为什么程序会死掉
    于Excel文件上传读取数据的问题
  • 原文地址:https://www.cnblogs.com/dcrenl/p/14005001.html
Copyright © 2011-2022 走看看