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

  • 相关阅读:
    智能家居测试思路
    Linux中,&和&&,|和||
    Eclipse设置保存代码时自动格式化代码
    Eclipse常用快捷键
    Eclipse设置快捷出现函数
    Eclipse设置代码背景色
    PDF转换成Word后乱码怎么办?
    Able2Extract快捷键汇总整理
    安装并激活Parallels Desktop商业版
    想在Mac上使用CAD?
  • 原文地址:https://www.cnblogs.com/dcrenl/p/14005001.html
Copyright © 2011-2022 走看看