Spring Boot的監聽線程是通過實現ApplicationRunner
或CommandLineRunner
接口來實現的。這兩個接口提供了一個run
方法,可以在Spring Boot應用啟動之后執行一些初始化操作。
具體步驟如下:
ApplicationRunner
或CommandLineRunner
接口的類,并重寫run
方法。例如:import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;
@Component
public class MyApplicationRunner implements ApplicationRunner {
@Override
public void run(ApplicationArguments args) throws Exception {
// 在這里編寫你要執行的初始化操作
System.out.println("ApplicationRunner is running");
}
}
@ComponentScan
注解,以掃描并加載MyApplicationRunner
類。例如:import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
@SpringBootApplication
@ComponentScan(basePackages = "com.example")
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
run
方法中的代碼將會被執行。另外需要注意的是,ApplicationRunner
和CommandLineRunner
的區別在于ApplicationRunner
接口的run
方法接收一個ApplicationArguments
參數,可以獲取命令行中傳遞的參數,而CommandLineRunner
接口的run
方法接收一個String
數組參數,可以獲取命令行中傳遞的參數數組。根據需要選擇適合的接口。