zoukankan      html  css  js  c++  java
  • java-项目加载时将数据存储到内存中

         1、获取数据库数据并存储在Map对象中

    复制代码
    package com.demo;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.ApplicationEvent;
    import org.springframework.context.ApplicationListener;
    import org.springframework.stereotype.Service;
    
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    @Service
    public class RegionServiceImpl  { //implements RegionService {
    
        @Autowired
        UserRepository userRepository;
        public static Map<Integer,String> regionMap = new HashMap<Integer, String>();
    
        public Map<Integer,String> initRegion(){
            if(regionMap.isEmpty()){
                List<Users> regionList = userRepository.findAll();
                for(Users r : regionList){
                    regionMap.put(r.getId(),r.getName()+","+r.getSex());
                }
            }
            return  regionMap;
        }
        public Map<Integer,String> getAllRegionMap(){
            return getRegionMap();
        }
    
        public static Map<Integer, String> getRegionMap() {
            return regionMap;
        }
    
        public static void setRegionMap(Map<Integer, String> regionMap) {
            RegionServiceImpl.regionMap = regionMap;
        }
    
    }
    复制代码

       2、在项目启动时加载方法

    复制代码
    package com.demo;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.CommandLineRunner;
    import org.springframework.stereotype.Component;
    
    @Component
    public class MyCommandLineRunner implements CommandLineRunner {
        @Autowired
        RegionServiceImpl regionService;
      
    /**
    * 线程启动
    */

    public void start(){
    new Thread(new xiancheng()).start();
            System.out.println(0);
        }
        @Override
        public void run(String... var1) throws Exception{
    
            regionService.initRegion();
            start();
            System.out.println("初始化完成");
        }
    }
    复制代码

      3、使用线程设置定时刷新数据

    复制代码
    package com.demo;
    
    public class xiancheng implements Runnable{
    
    
        public void run() {
            RegionServiceImpl regionService = new RegionServiceImpl();
            while (true) {
                regionService.initRegion();
                try {
                    System.out.println(111);
                    Thread.sleep(10 * 60);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    复制代码
  • 相关阅读:
    多层级makefile
    vscode常用快捷键
    unix socket接口
    以太网复习
    shell脚本算术运算
    1185: 零起点学算法92——单词数(C)
    1183: 零起点学算法90——海选女主角(C语言)
    1181: 零起点学算法88——偶数求和(C语言)
    1144: 零起点学算法51——数组中删数(C语言)
    列主元消去法&全主元消去法——Java实现
  • 原文地址:https://www.cnblogs.com/xing-nb/p/15226874.html
Copyright © 2011-2022 走看看