最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用System.exit()來(lái)優(yōu)雅地終止SpringBoot項(xiàng)目的代碼示例

 更新時(shí)間:2024年08月14日 11:59:17   作者:一恍過(guò)去  
System.exit() 方法是 Java 中用于退出程序的方法,它接受一個(gè)整數(shù)參數(shù),通常被用來(lái)指示程序的退出狀態(tài),本文給大家介紹了如何使用System.exit()來(lái)優(yōu)雅地終止SpringBoot項(xiàng)目,需要的朋友可以參考下

前言

System.exit():

System.exit():

System.exit() 方法是 Java 中用于退出程序的方法。它接受一個(gè)整數(shù)參數(shù),通常被用來(lái)指示程序的退出狀態(tài)。一般約定,如果程序正常退出,通常返回值為 0,而如果程序出現(xiàn)錯(cuò)誤或異常退出,返回值可以是其他非零值,用于指示錯(cuò)誤的類(lèi)型或狀態(tài)。

需要注意的是,System.exit() 是一種強(qiáng)制退出程序的方式,它會(huì)立即終止程序的執(zhí)行,不會(huì)執(zhí)行任何未完成的代碼或清理操作。因此,在正常情況下,應(yīng)該盡量避免濫用這個(gè)方法,而是通過(guò)正常的控制流程來(lái)退出程序。

SpringApplication.exit():

SpringApplication.exit 是 Spring Boot 提供的方法,用于優(yōu)雅地終止 Spring Boot 應(yīng)用程序。它的作用是允許你觸發(fā)應(yīng)用程序的關(guān)閉操作,這將導(dǎo)致 Spring Boot 應(yīng)用程序執(zhí)行關(guān)閉鉤子(shutdown hooks)和銷(xiāo)毀生命周期中的 Bean 等清理工作,以確保應(yīng)用程序在退出之前可以完成一些清理工作、資源釋放或其他必要的操作。

應(yīng)用

在開(kāi)發(fā)中,有可能存在以下場(chǎng)景:

  • 啟動(dòng)項(xiàng)目時(shí)驗(yàn)證項(xiàng)目是否已經(jīng)授權(quán),如果沒(méi)有授權(quán)則停止啟動(dòng)。
  • 啟動(dòng)項(xiàng)目后需要進(jìn)行各類(lèi)初始。如果初始化失敗則停止啟動(dòng)。

為了實(shí)現(xiàn)停止SpringBoot項(xiàng)目運(yùn)行我們需要使用到System.exit()方法。
System.exit()接受一個(gè)int參數(shù),如果為0正常退出;為非0的其他整數(shù),表示非正常退出當(dāng)前程序。其實(shí)不管傳什么數(shù)值都會(huì)導(dǎo)致系統(tǒng)的停止。

具體使用如下:

假如我們的初始化操作,如下所示:

@Component
public class SystemApplicationRunner implements ApplicationRunner {

	@Resource
	private WebApplicationContext applicationContext;

    @Override
    public void run(ApplicationArguments args) {
  	   // 具體什么時(shí)候調(diào)用,根據(jù)實(shí)際情況定
	    if(xxx){
	        System.out.println("調(diào)用方法,關(guān)閉SpringBoot");
    	   // 如果初始化失敗或者其他失敗情況,則調(diào)用System.exit()方法
           System.exit(SpringApplication.exit(applicationContext));
    	}
	}
}	

效果:

補(bǔ)充:通過(guò) System.exit(SpringApplication.exit(applicationContext));方式時(shí),系統(tǒng)會(huì)自動(dòng)判斷傳0還是非0,我們也可以自主傳入?yún)?shù),比如:

public class Test {
      public static void main(String[] args) {
        if(xxx){
	        System.out.println("調(diào)用方法,關(guān)閉項(xiàng)目");
    	   // 如果初始化失敗或者其他失敗情況,則調(diào)用System.exit()方法
           System.exit(0);
    	}
    }
}

以上就是使用System.exit()來(lái)優(yōu)雅地終止SpringBoot項(xiàng)目的代碼示例的詳細(xì)內(nèi)容,更多關(guān)于System.exit()終止SpringBoot項(xiàng)目的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • JAVA多線(xiàn)程和并發(fā)基礎(chǔ)面試問(wèn)答(翻譯)

    JAVA多線(xiàn)程和并發(fā)基礎(chǔ)面試問(wèn)答(翻譯)

    多線(xiàn)程和并發(fā)問(wèn)題是Java技術(shù)面試中面試官比較喜歡問(wèn)的問(wèn)題之一。在這里,從面試的角度列出了大部分重要的問(wèn)題,但是你仍然應(yīng)該牢固的掌握J(rèn)ava多線(xiàn)程基礎(chǔ)知識(shí)來(lái)對(duì)應(yīng)日后碰到的問(wèn)題
    2014-09-09
  • SpringBoot與SpringCache概念用法大全

    SpringBoot與SpringCache概念用法大全

    這篇文章主要介紹了SpringBoot與SpringCache的概念及基本用法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • java繼承學(xué)習(xí)之super的用法解析

    java繼承學(xué)習(xí)之super的用法解析

    本文介紹java繼承super的用法,Java繼承是會(huì)用已存在的類(lèi)的定義作為基礎(chǔ)建立新類(lèi)的技術(shù)新類(lèi)的定義可以增加新的數(shù)據(jù)或者新的功能,也可以使用父類(lèi)的功能,但不能選擇性的繼承父類(lèi) 這種繼承使得復(fù)用以前的代碼非常容易,能夠大大的縮短開(kāi)發(fā)的周期,需要的朋友可以參考下
    2022-02-02
  • Springboot 如何使用@Async整合線(xiàn)程池

    Springboot 如何使用@Async整合線(xiàn)程池

    這篇文章主要介紹了Springboot 使用@Async整合線(xiàn)程池的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Java實(shí)現(xiàn)的動(dòng)態(tài)數(shù)字時(shí)鐘功能示例【顯示世界時(shí)間】

    Java實(shí)現(xiàn)的動(dòng)態(tài)數(shù)字時(shí)鐘功能示例【顯示世界時(shí)間】

    這篇文章主要介紹了Java實(shí)現(xiàn)的動(dòng)態(tài)數(shù)字時(shí)鐘功能,結(jié)合實(shí)例形式分析了java顯示北京、紐約、倫敦等世界時(shí)間的相關(guān)日期時(shí)間運(yùn)算操作技巧,需要的朋友可以參考下
    2019-03-03
  • Hadoop組件簡(jiǎn)介

    Hadoop組件簡(jiǎn)介

    Hadoop作為一種分布式基礎(chǔ)架構(gòu),可以使用戶(hù)在不了解分布式底層細(xì)節(jié)的情況下,開(kāi)發(fā)分布式程序。接下來(lái)通過(guò)本文給大家分享Hadoop組件簡(jiǎn)介,感興趣的朋友一起看看吧
    2017-09-09
  • Java 線(xiàn)程池原理深入分析

    Java 線(xiàn)程池原理深入分析

    這篇文章主要介紹了Java 線(xiàn)程池原理深入分析的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • springboot3?redis?常用操作工具類(lèi)詳解

    springboot3?redis?常用操作工具類(lèi)詳解

    本文詳細(xì)介紹了Spring Boot 3中使用Spring Data Redis進(jìn)行Redis操作的工具類(lèi)實(shí)現(xiàn),該工具類(lèi)涵蓋了字符串、哈希、列表、集合和有序集合等常用功能,感興趣的朋友一起看看吧
    2025-01-01
  • Spring 整合Shiro 并擴(kuò)展使用EL表達(dá)式的實(shí)例詳解

    Spring 整合Shiro 并擴(kuò)展使用EL表達(dá)式的實(shí)例詳解

    Shiro是一個(gè)輕量級(jí)的權(quán)限控制框架,應(yīng)用非常廣泛。本文的重點(diǎn)是介紹Spring整合Shiro,并通過(guò)擴(kuò)展使用Spring的EL表達(dá)式。需要的朋友可以參考下
    2018-03-03
  • Java ResultSet案例講解

    Java ResultSet案例講解

    這篇文章主要介紹了Java ResultSet案例講解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08

最新評(píng)論

巴马| 镇平县| 石阡县| 清流县| 双流县| 琼结县| 托克逊县| 江川县| 曲麻莱县| 连云港市| 奉化市| 鹤壁市| 顺昌县| 阜新市| 东源县| 高青县| 青浦区| 大丰市| 天峻县| 尉氏县| 延寿县| 明光市| 陆良县| 漠河县| 健康| 玛沁县| 阆中市| 封丘县| 蒲城县| 辽中县| 甘孜县| 饶阳县| 延川县| 甘孜| 宜阳县| 丹棱县| 油尖旺区| 廉江市| 隆昌县| 武定县| 岚皋县|