溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

spring boot啟動(dòng)加載數(shù)據(jù)原理分析

發(fā)布時(shí)間:2020-09-27 17:42:31 來(lái)源:腳本之家 閱讀:144 作者:牛頭人 欄目:編程語(yǔ)言

實(shí)際應(yīng)用中,我們會(huì)有在項(xiàng)目服務(wù)啟動(dòng)的時(shí)候就去加載一些數(shù)據(jù)或做一些事情這樣的需求。

為了解決這樣的問(wèn)題,spring Boot 為我們提供了一個(gè)方法,通過(guò)實(shí)現(xiàn)接口 CommandLineRunner 來(lái)實(shí)現(xiàn)。

創(chuàng)建實(shí)現(xiàn)接口 CommandLineRunner 的類,通過(guò)@Component注解,就可以實(shí)現(xiàn)啟動(dòng)時(shí)加載數(shù)據(jù)項(xiàng)。使用@Order 注解來(lái)定義執(zhí)行順序。

IndexStartupRunner.Java類:

import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
/**
 * 服務(wù)啟動(dòng)執(zhí)行
 */
@Component
@Order(value=1)
public class IndexStartupRunner implements CommandLineRunner {
  @Override
  public void run(String... args) throws Exception {
    System.out.println("
IndexStartupRunner 
>>>>>>>>>>>>>>>服務(wù)啟動(dòng)執(zhí)行,執(zhí)行加載數(shù)據(jù)等操作 <<<<<<<<<<<<<");
  }
}
IndexStartupRunner2.java類:
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
/**
 * 服務(wù)啟動(dòng)執(zhí)行
 */
@Component
@Order(value=2)
public class IndexStartupRunner2 implements CommandLineRunner {
  @Override
  public void run(String... args) throws Exception {
    System.out.println("
IndexStartupRunner2 
>>>>>>>>>>>>>>>服務(wù)啟動(dòng)執(zhí)行,執(zhí)行加載數(shù)據(jù)等操作 <<<<<<<<<<<<<");
  }
}

啟動(dòng)程序后,控制臺(tái)輸出結(jié)果為:

>>>>>>>>>>>>>>>IndexStartupRunner服務(wù)啟動(dòng)執(zhí)行,執(zhí)行加載數(shù)據(jù)等操作<<<<<<<<<<<<<
>>>>>>>>>>>>>>>IndexStartupRunner2服務(wù)啟動(dòng)執(zhí)行,執(zhí)行加載數(shù)據(jù)等操作<<<<<<<<<<<<<

根據(jù)控制臺(tái)結(jié)果可判斷,@Order 注解的執(zhí)行優(yōu)先級(jí)是按value值從小到大順序。

ComandLineRunner和ApplicationRunner區(qū)別和使用

如果需要在springapplication啟動(dòng)之后運(yùn)行一些特定的代碼,可以實(shí)現(xiàn) ApplicationRunner 或
CommandLineRunner 接口。 兩個(gè)接口以相同的方式工作,并提供了一​​個(gè)單一的 run 方法,該方法將被調(diào)用
SpringApplication.run(…​) 完成之前。

這兩個(gè)接口的不同之處在于:ApplicationRunner中run方法的參數(shù)為ApplicationArguments,而CommandLineRunner接口中run方法的參數(shù)為String數(shù)組。

以上所述是小編給大家介紹的spring boot啟動(dòng)加載數(shù)據(jù)原理分析,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)億速云網(wǎng)站的支持!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI