那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

Android編程精選 ? 來源:CSDN ? 作者:獅子頭兒 ? 2021-07-04 10:42 ? 次閱讀

使用場景

在應用程序開發過程中,往往我們需要在容器啟動的時候執行一些操作。

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

兩個接口的不同

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

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

特殊的場景

在啟動項目時,有時候我們所做的操作可能不是一次性的操作,有可能循環查詢數據庫,根據結果來處理不同的業務,亦或是監聽消息隊列……

遇到的坑

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

如下圖所示:

poYBAGDhIauAazacAAES8GYxook272.jpg

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

pYYBAGDhIcCAbjXTAAC-kw-u9nE692.jpg

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

poYBAGDhIcyAdesaAAMP2XZPpwQ085.jpg

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

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

填坑

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

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

pYYBAGDhIdmANq8WAADMJg-q-6k628.jpg

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

poYBAGDhIeKAEIBzAAExSe3vTYE626.jpg

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

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

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

責任編輯:lq6

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 接口
    +關注

    關注

    33

    文章

    8694

    瀏覽量

    151931
  • spring
    +關注

    關注

    0

    文章

    340

    瀏覽量

    14392
  • Boot
    +關注

    關注

    0

    文章

    150

    瀏覽量

    35946

原文標題:什么?Spring Boot CommandLineRunner 有坑???

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

收藏 人收藏

    評論

    相關推薦

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

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

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

    ads1013兩個模擬輸入,可以接不同的兩個模擬輸入嗎,驅動程序中怎么分別讀兩個模擬輸入的轉換結果?
    發表于 12-02 08:02

    OMAPL137可以連接兩個左右兩個通道麥克風輸入嗎?

    Hi!大家好!我一些問題:OMAPL137 Evm 技術手冊上寫有P4 Microphone In 接口是stereo microphone line input,如下圖。 意思是可以連接兩個
    發表于 10-29 06:04

    ad如何設置兩個元器件的距離

    在Altium Designer(簡稱AD)中設置兩個元器件之間的距離,主要是通過設置元器件間的安全間距(Clearance)規則來實現的。這個規則定義了元器件之間、元器件與走線之間以及其他設計元素
    的頭像 發表于 09-02 15:31 ?8511次閱讀

    sr鎖存器特性表q為什么兩個

    SR鎖存器特性表中Q之所以兩個值,是因為這些值分別代表了鎖存器在不同輸入條件下的狀態。具體來說,Q的兩個值分別對應了鎖存器的“當前狀態”(也稱為“初態”或“現態”)和“新狀態”(也稱為“次態”或
    的頭像 發表于 08-28 09:28 ?885次閱讀

    功放機AB兩個聲道輸出怎么接

    聲道輸出可以分別連接到組音箱上,以實現立體聲效果。這種接線方式簡單直接,適用于大多數家庭影院和音響系統。 接線步驟: 確認接口 :首先,確認功放機AB兩個聲道輸出的接口類型(如RCA
    的頭像 發表于 08-23 10:40 ?4106次閱讀

    LMK05318具兩個頻域的超低抖動網絡同步器時鐘數據表

    電子發燒友網站提供《LMK05318具兩個頻域的超低抖動網絡同步器時鐘數據表.pdf》資料免費下載
    發表于 08-23 10:17 ?0次下載
    LMK05318具<b class='flag-5'>有</b><b class='flag-5'>兩個</b>頻域的超低抖動網絡同步器時鐘數據表

    觸發器的兩個穩定狀態分別是什么

    觸發器作為數字電路中的基本邏輯單元,具有兩個穩定狀態,這兩個狀態通常用于表示二進制數碼中的0和1。
    的頭像 發表于 08-12 11:01 ?1639次閱讀

    雙穩態電路的兩個穩定狀態是什么

    雙穩態電路是一種具有兩個穩定狀態的電子電路,廣泛應用于數字電路、通信系統、存儲器等領域。 雙穩態電路的基本概念 雙穩態電路是一種具有兩個穩定狀態的電路,即在沒有外部輸入信號的情況下,電路可以保持在
    的頭像 發表于 08-11 15:00 ?1742次閱讀

    雙穩態觸發器的兩個基本性質是什么

    雙穩態觸發器(Bistable Trigger)是一種具有兩個穩定狀態的邏輯電路,廣泛應用于數字電路設計中。它具有兩個基本性質:記憶性和切換性。 一、雙穩態觸發器的基本概念 1.1 雙穩態觸發器
    的頭像 發表于 08-11 10:08 ?825次閱讀

    CYW4373E的兩個clm_blob文件何不同?

    : \"cyfmac4373.clm_blob\" 和\"cyfmac4373-sdio.clm_blob\" clm_blob 文件。 請問這兩個文件什么區別,哪個適用于 SDIO 接口
    發表于 05-31 15:32

    請問ad9171的兩個輸出端口是否支持同時輸出兩個不同的頻率?

    你好,關于AD9171芯片我問題 ,數據手冊顯示該芯片具有兩個輸出通道,芯片內部DAC0和DAC1共兩個DAC通道,那么這
    發表于 05-28 06:20

    兩個銅片可以形成原電池嗎

    兩個銅片本身不能形成原電池,因為原電池的工作原理依賴于兩個不同電位的電極材料之間的氧化還原反應。
    的頭像 發表于 05-21 16:23 ?1165次閱讀

    STM32有沒有帶兩個USB FS接口的型號,求推薦?

    請教一下,STM32 的芯片,有沒有帶兩個USB FS 接口的型號,推薦一下,非常感謝! 兩個USB都需要做為主機使用。
    發表于 04-24 06:14

    arcgis中如何關聯兩個屬性表

    在ArcGIS中,關聯兩個屬性表是一重要的操作,可以通過此操作將兩個表中的數據關聯起來,以便進行分析和查詢。下面是詳細介紹如何在ArcGIS中實現屬性表的關聯。 首先,我們需要明確兩個
    的頭像 發表于 02-25 11:01 ?4475次閱讀
    皇冠国际足球| 网上百家乐娱乐场| 现场百家乐官网平台源码| 大赢家网上娱乐| 大发888在线娱乐城代理| 乐享百家乐的玩法技巧和规则| 百家乐真人游戏开户| 风水八运24山向吉凶飞星图| 百家乐官网赌场规则| 百家乐官网玩家技巧分享| 任丘市| 百家乐赢钱公式| 新尊龙国际| e世博资讯网| 龙博线上娱乐| 武威市| 在线扎金花| 宕昌县| 博坊百家乐官网游戏| 百家乐官网ipone| 百家乐官网游戏排行榜| 百家乐官网号论坛博彩正网| 百家乐官网博彩资讯论坛| 视频百家乐官网平台出租| 澳门百家乐官网会出千吗| 网上百家乐官网是假还是真的| 网上百家乐官网赌博出| 百家乐官网人生信条漫谈| 澳门百家乐官网牌例| 任我赢百家乐官网软件| 8运24山风水图解| 百家乐投注方向| 网络百家乐打揽| 黄金城百家乐手机用户| 华商棋牌游戏| 云鼎百家乐官网注册| 百家乐官网技术交流群| 澳门百家乐官网游戏说明| 迪士尼百家乐官网的玩法技巧和规则| 百家乐二代皇冠博彩| 恒利百家乐的玩法技巧和规则|