1. 程式人生 > >Spring Boot (教程九: 啟動載入)

Spring Boot (教程九: 啟動載入)

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:服務啟動的時候執行,正在載入資料。。。。。"); } }


執行結果:

1

  • 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值從小到大順序。

2