码迷,mamicode.com
首页 > 编程语言 > 详细

java-项目加载时将数据存储到内存中

时间:2018-04-29 13:19:00      阅读:434      评论:0      收藏:0      [点我收藏+]

标签:tar   while   port   repo   ISE   取数据   完成   span   ack   

     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();
            }
        }
    }
}

 

java-项目加载时将数据存储到内存中

标签:tar   while   port   repo   ISE   取数据   完成   span   ack   

原文地址:https://www.cnblogs.com/daxiaxia/p/8970690.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!