springboot 项目启动就加载数据到内存中

springboot 项目启动就加载数据到内存中

  • 需要ApplicationRunner接口,并实现run方法
  • @Component 注解
  • 实现代码:

第一种实现了ApplicationRunner接口 ,方法输入参数:ApplicationArguments
第二种实现了CommandLineRunner 接口 ,方法输入参数:String[]数组

@Component  //将类交给springboot容器处理
@Order(1)  //设置Springboot容器中的加载顺序
public class InitialCache implements ApplicationRunner {
    private  static Map cacheMap = new HashMap();

    public static Map getCacheMap() {
        return cacheMap;
    }

    @Override
    public void run(ApplicationArguments args) throws Exception {
        cacheMap.put("initialCache1","初始话程序1");
        cacheMap.put("initialCache2","初始话程序2");
        cacheMap.put("initialCache3","初始话程序3");
        cacheMap.put("initialCache4","初始话程序4");
        cacheMap.put("initialCache5","初始话程序5");
        System.out.println("项目启动就加载"+InitialCache.class);
    }

public class InitialCache2 implements CommandLineRunner {
    private  static Map map = new HashMap<>();

    public static Map getMap() {
        return map;
    }


    @Override
    public void run(String... args) throws Exception {
        map.put("InitialCache2:", args);
    }
}

启动类:

@SpringBootApplication
public class QuartzDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(QuartzDemoApplication.class, args);
        System.out.println("InitialCache 使用ApplicationRunner接口加载数据:"+InitialCache.getCacheMap());
        System.out.println("InitialCache2 使用CommandLineRunner加载数据:"+ InitialCache2.getMap());
    }

}

运行效果:
在这里插入图片描述

你可能感兴趣的:(spring全家桶学习)