chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

CommandLineRunner和ApplicationRunner兩個接口有何不同?

Android編程精選 ? 來源:CSDN ? 作者:獅子頭兒 ? 2021-07-04 10:42 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

使用場景

在應(yīng)用程序開發(fā)過程中,往往我們需要在容器啟動的時候執(zhí)行一些操作。

Spring Boot中提供了CommandLineRunner和ApplicationRunner兩個接口來實現(xiàn)這樣的需求。

兩個接口的不同

參數(shù)不同,其他大體相同,可根據(jù)實際需求選擇合適的接口使用。

CommandLineRunner接口中run方法的參數(shù)為String數(shù)組,ApplicationRunner中run方法的參數(shù)為ApplicationArguments。

特殊的場景

在啟動項目時,有時候我們所做的操作可能不是一次性的操作,有可能循環(huán)查詢數(shù)據(jù)庫,根據(jù)結(jié)果來處理不同的業(yè)務(wù),亦或是監(jiān)聽消息隊列……

遇到的坑

看下面一個例子,我們啟動一個spring boot項目,正常啟動情況下,項目啟動后會打印啟動時間。

如下圖所示:

poYBAGDhIauAazacAAES8GYxook272.jpg

下面我們模擬一下啟動項目時使用CommandLineRunner,有人說CommandLineRunner是項目啟動完成后才調(diào)用的,我們看看現(xiàn)象。

pYYBAGDhIcCAbjXTAAC-kw-u9nE692.jpg

再次啟動spring boot 項目,看看日志,直接報錯,啟動異常了。

poYBAGDhIcyAdesaAAMP2XZPpwQ085.jpg

說明啟動CommandLineRunner的執(zhí)行其實是整個應(yīng)用啟動的一部分,沒有打印最后的啟動時間,說明項目是在CommandLineRunner執(zhí)行完成之后才啟動完成的。

此時CommandLineRunner的run方法執(zhí)行的是一個循環(huán),循環(huán)到第四次的時候,拋出異常,直接影響主程序的啟動。

填坑

這樣的問題該如何解決呢?

這個操作影響了主線程,那么我們是否可以重新開啟一個線程,讓他單獨(dú)去做我們想要做的操作呢。

pYYBAGDhIdmANq8WAADMJg-q-6k628.jpg

我們再看看這次的日志是什么樣的:

poYBAGDhIeKAEIBzAAExSe3vTYE626.jpg

此時CommandLineRunner執(zhí)行的操作和主線程是相互獨(dú)立的,拋出異常并不會影響到主線程。

程序打印了啟動時間,并且CommandLineRunner中run方法報錯后,應(yīng)用程序并沒有因為異常而終止。填坑成功。

原文鏈接:https://blog.csdn.net/zwq_zwq_zwq/article/details/81059017

責(zé)任編輯:lq6

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    9439

    瀏覽量

    156071
  • spring
    +關(guān)注

    關(guān)注

    0

    文章

    341

    瀏覽量

    15762
  • Boot
    +關(guān)注

    關(guān)注

    0

    文章

    154

    瀏覽量

    37465

原文標(biāo)題:什么?Spring Boot CommandLineRunner 有坑?。?/p>

文章出處:【微信號:AndroidPush,微信公眾號:Android編程精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    硬件SPI兩個CS操作兩個norflash,怎么互斥操作兩個norflash?

    硬件SPI兩個CS操作兩個norflash,怎么互斥操作兩個norflash,norf
    發(fā)表于 09-26 06:18

    基本半導(dǎo)體連獲兩個行業(yè)獎項

    近日,基本半導(dǎo)體憑借在碳化硅模塊領(lǐng)域的突出表現(xiàn),連獲“國產(chǎn)SiC模塊TOP企業(yè)獎”和“年度優(yōu)秀功率器件產(chǎn)品獎”兩個行業(yè)獎項。
    的頭像 發(fā)表于 09-05 16:31 ?866次閱讀

    看到STM8L152用兩個IO用兩個或非門檢測兩個通斷,是什么原理呢?

    圖中兩個按鍵開關(guān)是兩個干簧管,為什么不直接對GND設(shè)計來檢測這個干簧管通斷呢? 這樣設(shè)計的原理是什么?
    發(fā)表于 06-12 06:25

    可能在 FX3 GPIF2 中創(chuàng)建兩個獨(dú)立的狀態(tài)機(jī)嗎?

    我想,如果我想通過 FX3 GPIF2 創(chuàng)建兩個獨(dú)立的傳輸流接口,我需要在 GPIF2 設(shè)計器中創(chuàng)建兩個獨(dú)立的狀態(tài)機(jī),我是否可能在 GPIF2 設(shè)計器中創(chuàng)建
    發(fā)表于 05-20 06:14

    請問imx8mp的LVDS0和LVDS1接口是否可以同時在兩個屏幕上工作?

    請問 imx8mp 的 LVDS0 和 LVDS1 接口是否可以同時在兩個屏幕上工作? 你什么例子嗎?
    發(fā)表于 04-14 06:11

    使用THS1206時候兩個問題求解

    各位專家,大家好,我在使用THS1206時候兩個問題,麻煩您幫我解答一下: 1、在test mode下,我把CR0中的bit8和bit9設(shè)置為0、1時,即此時THS1206的輸出應(yīng)該是800H
    發(fā)表于 02-13 08:36

    可以驅(qū)動兩個直流刷電機(jī)、一雙極步進(jìn)電機(jī)的雙H橋電機(jī)驅(qū)動芯片-SS8833E

    電機(jī)驅(qū)動芯片 - SS8833E是一種雙橋電機(jī)驅(qū)動器,具有兩個H橋驅(qū)動器,可以驅(qū)動兩個直流刷電機(jī)、一雙極步進(jìn)電機(jī)、電磁閥或其他電感負(fù)載。
    的頭像 發(fā)表于 02-12 09:43 ?902次閱讀
    可以驅(qū)動<b class='flag-5'>兩個</b>直流<b class='flag-5'>有</b>刷電機(jī)、一<b class='flag-5'>個</b>雙極步進(jìn)電機(jī)的雙H橋電機(jī)驅(qū)動芯片-SS8833E

    ADS1198兩個時鐘,CLK和SCLK,這兩個時鐘信號能接在一起嗎?

    最近在做這塊芯片,看到兩個時鐘,CLK和SCLK,這兩個時鐘信號能接在一起嗎,就是說CLK和SLCK能不能使用同一時鐘信號?另外,關(guān)于芯片的SPI輸入輸出,要不要做一些初始化的工
    發(fā)表于 02-07 06:28

    在ADS828中兩個輸入管腳IN+和IN-,當(dāng)兩個管腳的都接不同的輸入的時候,輸入值是如何計算的啊?

    在ADS828中兩個輸入管腳IN+和IN-,當(dāng)兩個管腳的都接不同的輸入的時候,輸入值是如何計算的???是等于IN+的輸入電壓減去IN-的電壓嗎?
    發(fā)表于 02-06 06:25

    兩個不同頻率晶振靠的近會怎樣

    晶振的振蕩本質(zhì)上是一種機(jī)械振動(在壓電晶體層面)。當(dāng)兩個晶振靠得很近時,它們的機(jī)械振動可能會相互影響。一晶振的振動可能會通過電路板或者外殼等介質(zhì)傳遞給另一晶振,從而改變另一晶振的
    的頭像 發(fā)表于 01-20 13:55 ?2006次閱讀
    <b class='flag-5'>兩個</b>不同頻率晶振靠的近會怎樣

    EE-96:將兩個AD73311編解碼器與ADSP-218x接口

    電子發(fā)燒友網(wǎng)站提供《EE-96:將兩個AD73311編解碼器與ADSP-218x接口.pdf》資料免費(fèi)下載
    發(fā)表于 01-13 16:32 ?0次下載
    EE-96:將<b class='flag-5'>兩個</b>AD73311編解碼器與ADSP-218x<b class='flag-5'>接口</b>

    如何把兩個數(shù)據(jù)返回給調(diào)用函數(shù)

    已經(jīng)知道函數(shù)會返回兩個數(shù)據(jù),提前申請兩個元素的內(nèi)存,并且把數(shù)組作為參數(shù)傳遞過去,把返回值放在數(shù)組中就行。 第三種,定義一全局的結(jié)構(gòu)體變量,這樣可以不用傳參也不用返回,直接操作全局?jǐn)?shù)據(jù)。 比較典型的錯誤寫法
    的頭像 發(fā)表于 01-08 10:15 ?666次閱讀

    ADS7230兩個電源和兩個地,是不是意味著芯片內(nèi)部模擬部分和數(shù)字部分是隔離的?

    ADS7230兩個電源和兩個地,是不是意味著芯片內(nèi)部模擬部分和數(shù)字部分是隔離的?或者是非隔離,只做電平轉(zhuǎn)換的?忘各位大俠解答,小弟不甚感激!?。?
    發(fā)表于 01-08 08:21

    ADC124S021同時使用兩個通道,兩個通道的轉(zhuǎn)換數(shù)據(jù)發(fā)生串?dāng)_怎么解決?

    用DSP的SPI接口接ADC124S021,如果只是進(jìn)行單通道的信號采集,則轉(zhuǎn)換后的數(shù)值穩(wěn)定,但是同時使用兩個通道時則兩個通道的數(shù)據(jù)發(fā)生串?dāng)_現(xiàn)象。如,我單獨(dú)使用2通道,則轉(zhuǎn)換后數(shù)值穩(wěn)定,但是如果
    發(fā)表于 12-30 07:41

    ads1013兩個模擬輸入,可以接不同的兩個模擬輸入嗎?

    ads1013兩個模擬輸入,可以接不同的兩個模擬輸入嗎,驅(qū)動程序中怎么分別讀兩個模擬輸入的轉(zhuǎn)換結(jié)果?
    發(fā)表于 12-02 08:02