日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spring启动加载流程

發布時間:2025/3/19 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring启动加载流程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

上次看了spring的加載流程,今天發現或多都忘記了,今天又看了一下,順便總結一下:

標題spring的web項目啟動:

1、首先web容器(比如Tomcat)會讀取配置在web.xml中的監聽器,從而啟動spring容器。

<!--web項目中上下文初始化參數, name value的形式 --> <context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/applicationContext.xml</param-value> </context-param><!--ContextLoaderListener,會通過它的監聽啟動spring容器--> <listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener><!--DispatherServlet,前端MVC核心,分發器,SpringMVC的核心--> <servlet><servlet-name>dispatcher</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><load-on-startup>1</load-on-startup> </servlet>

1、web容器(如tomcat)讀取web.xml, 創建ServletContext,它是web的上下文,整個web項目都會用到它。
2、讀取context-param節點,它以 鍵值對的形式出現。將節點值轉化為鍵值對,傳給ServletContext。(默認的文件為/WEB-INF/applicationContext.xml)。
3、容器創建中的實例,創建監聽器。監聽器必須繼承ServletContextListener 調用ServletContextListener的contextInitialized()方法,spring容器的創建和初始化就是在這個方法中。
4、在web容器初始化過程中,會創建節點的監聽器,并調用它的contextInitialized()方法。這個方法中會完成spring容器的創建,初始化,以及beans的創建。(會調用以下方法)
initWebApplicationContext()主要做三件事

  • 創建WebApplicationContext,通過createWebApplicationContext()方法
    加載spring配置文件,并創建beans。
  • 通過configureAndRefreshWebApplicationContext()方法
  • 將spring容器context掛載到ServletContext
  • 這個web容器上下文中。通過servletContext.setAttribute()方法。
    createWebApplicationContext 創建spring容器
  • 獲取WebApplicationContext實現類的class對象
  • 根據class對象創建實例對象
    configureAndRefreshWebApplicationContext加載spring配置文件,創建beans
    configureAndRefreshWebApplicationContext()這個方法會先讀取web.xml中聲明的contextConfigLocation元素,通過它找到spring配置文件。然后在refresh()方法中讀取配置文件,并創建和初始化beans。所以重中之重還是refresh()方法

流程圖

spring容器初始化的整個流程圖如下

創建WebApplicationContext對象流程如下

讀取XML配置文件,創建beans流程如下

轉載:https://blog.csdn.net/u013510838/article/details/75066884
注:web.xml的加載順序是:context-param-listener-filter-servlet。其中,如果web.xml中出現了相同的元素,則按照在配置文件中出現的先后順序來加載。

總結

以上是生活随笔為你收集整理的spring启动加载流程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。