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();
                }
            }
        }
    }
    复制代码
  • 相关阅读:
    [HNOI2016]序列
    [Cqoi2015] 编号 【逆向思维,暴力枚举】
    [NOI2015] 软件包管理器【树链剖分+线段树区间覆盖】
    [Hdu-6053] TrickGCD[容斥,前缀和]
    [Hdu-5155] Harry And Magic Box[思维题+容斥,计数Dp]
    牛客NOIP暑期七天营-提高组6
    [SHOI2007] 书柜的尺寸 思维题+Dp+空间优化
    [UVA12235] Help Bubu 思维题+状态定义+Dp
    牛客NOIP暑期七天营-TG3 赛后题解
    牛客NOIP暑期七天营-TG1 赛后题解
  • 原文地址:https://www.cnblogs.com/xing-nb/p/15226874.html
Copyright © 2011-2022 走看看