SpringBoot2啟動流程

2021-09-11 10:24:40 字數 1401 閱讀 8986

springboot如果要說是springframework的封裝那麼也不全是,個人認為從思想上來說是兩個東西。

springboot主要具備如下特性

1.自動裝配

2.內建tomcat等web容器

3.與devops天然整合,這也可以認為是微服務的特點。

下面咱們看下**

public

class

}

public

(class<

?>

primarysources,

string[

] args)

public

(resourceloader resourceloader, class<

?>..

. primarysources)

上面的重點其實都在setinitializers與setlisteners

這兩個的初始化其實是spi的spring實現

getspringfactoriesinstances這個方法挺有意思的

原理就是獲取配置檔案下type是哪一類的key配置的class名,然後通過反射例項化。

咱們繼續往下看run方法

上一段**,在**裡面有注釋。先看看

/**

*/(string.

.. args)

, context)

;//第五步:準備容器

preparecontext

printedbanner)

;//第六步:重新整理容器

refreshcontext

(context)

;//第七步:重新整理容器後的擴充套件介面

afterrefresh

; stopwatch.

stop()

;if(this

.logstartupinfo)

listeners.

started

(context)

;callrunners;}

catch

(throwable ex)

trycatch

(throwable ex)

return context;

}

總結一下

這篇是先大概將springboot的大流程說一下,從俯視角度看全域性做到心中有數。

我們後續再詳細拆分一小塊一小塊的細寫。

不然一上來就每行**的過,這樣看spring原始碼容易陷進去出不來。

導致最後感覺啥都不會

歡迎掃碼加入知識星球繼續討論

SpringBoot2 擴充套件介面

判斷乙個框架或者程式的好壞直觀的方法就是看其擴充套件性如何。毫無疑問spring擴充套件性這方面做的不錯。說到擴充套件主要還是在容器的refresh這塊,也有listener 這一塊先放放 實現原則嚴格按照開閉原則,內部修改關閉,對擴充套件開放 咱們先看一張流程圖 如上圖中主要的畫出來了具體的執行流...

spring boot 2 基礎應用

restcontroller相當於 responsebody controller。使用spring initializer快速建立spring boot專案2 yaml語法 1 基本語法 k 空格 v 表示 對鍵值對 空格必須有 以空格的縮進來控制層級關係 只要是左對齊的一 列資料,都是同 個層級...

springBoot2 自動配置

雖然我們127個場景的所有自動配置啟動的時候預設全部載入 xautoconfiguration 但仍需按照條件裝配規則 conditional 按需配置。總結 springboot先載入所有的自動配置類 xxautoconfiguration 每個自動配置類按照條件進行生效,預設都會繫結配置檔案指定...