Spring Boot 如何解決項目啓動時初始化資源

這個神器就是 CommandLineRunner,ApplicationRunner java

 CommandLineRunner 接口的 Component 會在全部 SpringBeans都初始化以後, SpringApplication.run()以前執行,很是適合在應用程序啓動之初進行一些數據初始化的工做。ide

 

若是咱們在啓動容器的時候須要初始化不少資源,而且初始化資源相互之間有序,那如何保證不一樣的 CommandLineRunner 的執行順序呢?Spring Boot 也給出瞭解決方案。那就是使用 @Order 註解。.net

 

用法:code

@Component
@Order(1)
public class OrderRunner1 implements CommandLineRunner {
    @Override
    public void run(String... args) throws Exception {
        System.out.println("The OrderRunner1 start to initialize ...");
    }
}

注意:必定要有@Component這個註解。要否則SpringBoot掃描不到這個類,是不會執行。接口

添加 @Order 註解的實現類最早執行,而且 @Order()裏面的值越小啓動越早。資源

在實踐中,使用 ApplicationRunner 用法相同get

相關文章
相關標籤/搜索