Spring Boot (教程九: 啟動載入)
阿新 • • 發佈:2019-02-07
GitHub 地址:
CommandLineRunner 介面實現啟動載入
需求:啟動伺服器的時候載入資料
- Spring Boot 提供 CommandLineRunner 介面,用於啟動伺服器的時候載入資料
用法很簡單,只需要建立一個類,實現 CommandLineRunner 介面 ,重寫 run(String… args) 方法即可
- StartLoading.java
包所在:com.example.start
注意:建立的類屬於Controller層,所以要加上@Component註解
package com.example.start;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Controller;
/**
* 服務啟動的時候執行
* 建立一個類實現 CommandLineRunner 介面,重寫 run(String... arg0)方法
* @author LingDu
*/
@Controller
public class StartLoading implements CommandLineRunner {
@Override
public void run(String... arg0) throws Exception {
System.out.println("StartLoading:服務啟動的時候執行,正在載入資料。。。。。");
}
}
執行結果:
- StartLoading1.java
包所在:com.example.start
多個CommandLineRunner 例項優先順序的問題
- 使用@Order 註解設定Value值來執行順序
作為演示,我們建立多一個類 StartLoading1.java ,實現CommandLineRunner介面並重寫run(String… arg0)方法
- 不同的是在:
@Component 註解下新增 @Order(value=1)
package com.example.start;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
/**
*
* @author LingDu
*/
@Component
@Order(value=1) //優先順序
public class StartLoading1 implements CommandLineRunner {
@Override
public void run(String... arg0) throws Exception {
System.out.println("優先順序:1 ********* StartLoading1:服務啟動的時候執行,正在載入資料。。。。。");
}
}
@Order 註解的執行優先順序是按value值從小到大順序。