Spring Boot Runner啟動器

茅坤寶駿氹發表於2018-05-01

轉載自 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註解。


相關文章