Spring Boot 啟動原理解析(一)

前言

作為一位菜鳥級的碼農(nóng),深感知識匱乏之窘境。在為此煩惱之時一朋友向我推薦了Spring boot源碼系列,站在巨人肩旁上學(xué)習(xí)之余向大家分享一些學(xué)有所得的干貨。在了解Spring Boot之前可先了解下 什么是Spring BootSpring Boot與Spring MVC的區(qū)別是什么? 從而對Spring boot 有一個清晰的定位。

我們先看下百度百科的Spring Boot特點介紹

  1. 簡化Maven配置,自動配置Spring、零配置啟動
  2. 內(nèi)置tomcatjettyundertow 三大web容器
  3. 將應(yīng)用打包成為一個jar/war 通過jar啟動應(yīng)用

碼農(nóng)的福音戰(zhàn)士,簡化了開發(fā)前期的配置工作,極大的提高了碼農(nóng)們的生產(chǎn)力。

單刀主題

Spring Boot的一個及其吸引人的特性是將應(yīng)用打包成jarwar包直接啟動。我們可以先了解下jar解壓包的MANIFEST.MF


從啟動清單文件中我們知道有兩個很重要的參數(shù)jar包啟動類Main-Class及應(yīng)用程序啟動類Start-Class,其中Start-Class直指我們程序中的main函數(shù)類Application

在斷點進入Application.class代碼,我們會執(zhí)行了兩個方法:一個是initialize()初始化啟動參數(shù)變量,最重要的是決定是否加載web容器

第二個run()加載所需容器并啟動

當(dāng)你的微服務(wù)啟動成功時你會看到

當(dāng)你看到你控制臺輸出Tomcat started on port(s): 8080 (http)你會有這樣的疑問,我什么web服務(wù)器參數(shù)都沒配置,怎么就占用了8080端口啟動,接著就會有以下疑問:要是我電腦8080端口被占用了Spring Boot Tomcat 不能正常啟動,該怎么配置其他端口或是怎么配置其他個性化的參數(shù)。由于篇幅限制這些我都會在下期Spring Boot 啟動原理解析中詳解Tomcat加載啟動,以及Spring Boot是如何加載配置的。

末尾

知識源于點滴積累。每當(dāng)回首過往碼農(nóng)路,他人問我技術(shù)問題而不能答上時而深感自行慚愧。與大家分享些技術(shù)干貨,作為一個自我成長的切入點。本人才疏學(xué)淺,寫的不對的或分析不夠透徹的地方還望大家大刀予以斧正,也歡迎大家關(guān)注我的簡書見證我的成長,名為柴碼

給自己定一小目標(biāo):每兩周或一周一更
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容