1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        Springboot 項(xiàng)目的整個(gè)啟動(dòng)流程

        共 1174字,需瀏覽 3分鐘

         ·

        2021-10-28 22:48

        要從注解講起否則就是耍流氓

        @SpringBootApplication注解

        ?講解:該注解是一個(gè)復(fù)合注解,它由三個(gè)注解組成。

        ? ? ? ? ? ??①@SpringBootConfiguration(打開(kāi)是@Configuration):表明這是一個(gè)java配置類(lèi)

        ? ? ? ? ? ? ②@EnableAutoConfiguration:自動(dòng)配置注解,會(huì)將所有符合自動(dòng)配置條件的@Configuration配置加載到IOC容器中。

        ? ? ? ? ? ??③@ComponentScan:掃描注解,自動(dòng)掃描符合條件的組件 (@Service,@Component)或者bean定義,記載到IOC容器中

        ?springBoot的啟動(dòng)流程

        1. 從spring.factories配置文件中加載EventPublishingRunListener對(duì)象,該對(duì)象擁有SimpleApplicationEventMulticaster屬性,即在springboot啟動(dòng)過(guò)程的不同階段用來(lái)發(fā)射內(nèi)置的生命周期事件。

        2. 準(zhǔn)備環(huán)境變量,包括系統(tǒng)變量,環(huán)境變量,命令行參數(shù),默認(rèn)變量,servlet相關(guān)配置變量,隨機(jī)值及配置文件(比如application.properties)等

        3. 控制臺(tái)打印springboot的bannner標(biāo)志

        4. 根據(jù)不同類(lèi)型環(huán)境創(chuàng)建不同類(lèi)型的applicationcontext容器,如果是servlet環(huán)境,創(chuàng)建的就是AnnotationConfigServletWebServerApplicatonContext容器對(duì)象

        5. 從spring.factories配置文件中加載FailureAnalyZers對(duì)象,用來(lái)報(bào)告springboot啟動(dòng)過(guò)程中的異常

        6. 為剛創(chuàng)建的容器對(duì)象做一些初始化工作,準(zhǔn)備一些容器屬性值等,對(duì)ApplicationContext應(yīng)用一些相關(guān)的后置處理和調(diào)用各個(gè)ApplicationContextInitializer的初始化方法來(lái)執(zhí)行一些初始邏輯等

        7. 刷新容,這一步至關(guān)重要。比如調(diào)用bean factory的后置處理器,注冊(cè)BeanPostProcessor后置處理器,初始化事件廣播器且廣播事件,初始化剩下的單例bean和springboot創(chuàng)建內(nèi)嵌的Tomcat服務(wù)器等重要且復(fù)雜的邏輯都在這里實(shí)現(xiàn)

        8. 執(zhí)行刷新新容器后的后置處理邏輯,注意這里為空方法

        9. 調(diào)用ApplicationRunner和CommandLineRunner的run方法,我們實(shí)現(xiàn)這兩個(gè)接口可以在spring容器啟動(dòng)后需要的一些東西 比如加載一些業(yè)務(wù)數(shù)據(jù)等

        10. 報(bào)告啟動(dòng)異常,即若啟動(dòng)過(guò)程中拋出異常,此時(shí)喲個(gè)FailureAnalyzers來(lái)報(bào)告異常

        11. 最終返回容器對(duì)象,這里調(diào)用方法沒(méi)有聲明對(duì)象來(lái)接收

        ?

        瀏覽 24
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            chinese麻豆gay勾外卖 | 非洲黑人毛片 | 男同桌上课狂揉我下边 | 操逼的网站。 | 潘金莲三级做爰 | 毛片A级成人片 | 成人黄片18 | 日韩欧美视频在线播放 | 两个男人操一个女人视频 | 久热免费视频在线观看 |