首先我們不要在學(xué)習(xí)Spring的開始產(chǎn)生畏難情緒。Spring沒有臆想的那么高深,相反,它幫我們再項目開發(fā)中制定項目框架,簡化項目開發(fā)。它的主要功能是將項目開發(fā)中繁瑣的過程流程化,模式化,使用戶僅在固定文件中增加特定標簽并實現(xiàn)特定邏輯層的代碼就能完成項目開發(fā)。下面我們來分析web項目啟動時bean的初始化過程。
我們遵循類的依賴,引用關(guān)系來理清spring在這一過程中的架構(gòu)和細節(jié)實現(xiàn)。java web項目入口在web.xml,Spring在此配置入口servlet完成bean的加載。DispatcherServlet 作為前置控制器是web服務(wù)器的入口。
<servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet>
我們知道load-on-startup元素標記容器是否在啟動的時候就加載這個servlet(實例化并調(diào)用其init()方法)。進入DispatcherServlet尋找init方法,在其父類HttpServletBean中找到。
DispatcherServlet的繼承關(guān)系如下圖
init方法細節(jié)代碼如下
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26