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

Posted 三七

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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();
            }
        }
    }
}

 





以上是关于java-项目加载时将数据存储到内存中的主要内容,如果未能解决你的问题,请参考以下文章

Java中代码的执行顺序

在通知单击时将项目添加到片段内的 recyclerview

书籍摘要-深入理解java虚拟机

JDBC 兼容主内存独立数据库

浅谈JVM - 内存结构- java7 到 java8 内存结构的变化

Qt C++ 项目中 Xamarin 项目中代码的可重用性