最近一直在看springboot和springcloud**,看了將近20多天,對這兩個系統的認知總算是入了門。後續應該會有乙個系列的文章,本文就先從springboot的啟動入手.
上面的**是springboot的入口,現在從run方法進去
點選進來後到了這裡就會分成兩步
2.呼叫生成的物件的run方法
1.推斷程式型別,推斷規則在2.1.1
【2.1.1】判斷程式型別
呼叫生成的物件的run方法
【3.1】記錄時間
springboot內部記錄流程節點花費時間的工具類
我們看看start方法
再看publishevent是如何把event推送出去的
這裡一整套的封裝,就是為了這邊傳送事件
【3.3】建立容器
【3.3.1】建立environment
【3.3.2】建立容器
【3.3.4】載入mainsource到容器
【3.3.5】refresh,beanfactory的設定,beanfactorypostprocessor介面的執行、beanpostprocessor介面的執行、自動化配置類的解析、條件註解的解析、國際化的初始化
【3.4】容器建立之後
【3.4.1】runer實現類
上述講了springboot的啟動流程,那如果我們想在啟動的時候自定義一些操作,可以考慮以下幾種方式。
【4.1】對容器的操作
需要注意的是,這個bean需要在meta-inf/spring.factories中註冊上才可以被掃瞄到
【4.2】監聽5大事件
以上,就是springboot的啟動流程,裡面還有幾處細節,後續會慢慢更新
詳解SpringBoot應用服務啟動與安全終止
springboot應用服務啟動 參照官方示例工程可以快速搭建簡單springboot應用,官方連線如下 閒話少敘,上 package hello import org.springframework.boot.import org.springframework.boot.autoconfigur...
springboot 啟動原理
public static void main string args throws exception 作為深入原理的第一篇,我們先來看下spring boot應用是怎麼啟動的。public run string args return context catch throwableex 初始化 ...
springboot 啟動流程
this.resourceloader resourceloader assert.notnull primarysources,primarysources must not be null this.primarysources new linkedhashset arrays.aslist p...