天天看點

Spring Boot Runner啟動器

Runner啟動器

如果你想在Spring Boot啟動的時候運作一些特定的代碼,你可以實作接口ApplicationRunner或者CommandLineRunner,這兩個接口實作方式一樣,它們都隻提供了一個run方法。

CommandLineRunner:啟動擷取指令行參數。

public interface CommandLineRunner {

    /**
     * Callback used to run the bean.
     * @param args incoming main method arguments
     * @throws Exception on error
     */
    void run(String... args) throws Exception;

}      

ApplicationRunner:啟動擷取應用啟動的時候參數。

public interface ApplicationRunner {

    /**
     * Callback used to run the bean.
     * @param args incoming application arguments
     * @throws Exception on error
     */
    void run(ApplicationArguments args) throws Exception;

}      

使用方式

import org.springframework.boot.*
import org.springframework.stereotype.*

@Component
public class MyBean implements CommandLineRunner {

    public void run(String... args) {
        // Do something...
    }

}      

或者這樣

@Bean
public CommandLineRunner init() {

    return (String... strings) -> {

    };

}      

啟動順序

如果啟動的時候有多個ApplicationRunner和CommandLineRunner,想控制它們的啟動順序,可以實作org.springframework.core.Ordered接口或者使用org.springframework.core.annotation.Order注解。