您好,登錄后才能下訂單哦!
實(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)站的支持!
免責(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)容。