1. 程式人生 > >Spring Boot 2.x 系列--spring 在啟動後執行某些特定程式碼

Spring Boot 2.x 系列--spring 在啟動後執行某些特定程式碼

實現ApplicationRunnerCommandLineRunner介面。兩個介面以相同的方式工作並提供單個run方法

兩者的區別:

ApplicationRunner使用了ApplicationArguments 作為引數

    @Override
    public void run(ApplicationArguments args) throws Exception {
        System.out.println(">>>>>>>>>>>>>>>>>>>>>>   ApplicationRunner");
    }

CommandLineRunner使用了一個簡單的字串陣列

    @Override
    public void run(String... args) throws Exception {
        System.out.println(">>>>>>>>>>>>>>>>>>>>>>   CommandLineRunner");
    }

執行效果:

2018-11-09 17:12:31.834  INFO 25520 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2018-11-09 17:12:32.061  INFO 25520 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2018-11-09 17:12:32.066  INFO 25520 --- [           main] com.example.demo.BannerApplication       : Started BannerApplication in 2.901 seconds (JVM running for 4.322)
>>>>>>>>>>>>>>>>>>>>>>   CommandLineRunner

拍黑板:

如果兩個都寫, 是可以的. 

想指定誰先執行, 可以用  @Order(666)  來指定順序  -- 666這個數字隨便指定