SpringMVC的初始化

2021-09-30 00:23:33 字數 1829 閱讀 3842

透過現象看本質,dispatcherservlet我們在配置檔案中配置,光看其名字就知道這是乙個servlet,而servlet我們比較熟悉,宣告週期無非就是init–>service–>destroy。而dispatcherservlet本身沒有該方法,就想到方法應該在其父類。

在此之前,應該先研究下關鍵幾個類的關係。

最終是呼叫httpservletbean的init()方法

spring中的類實在是太多了,我個人在最初學習的時候毫無頭緒,過目就忘,而且看完spring再去看mybatis,感覺mybatis超簡單,原因就是mybatis模擬較少。針對於類多的情況,我主張是去先看介面,因為介面定義了一種規範,帶著這種規範去看某個類,目的就明確一些。

public final void init() throws servletexception 

catch (bean***ception ex)

throw ex;

}} // let subclasses do whatever initialization they like.

initservletbean();

}

httpservletbean是乙個抽象類,其中的initservletbean()又去呼叫子類frameworkservlet的

protected final void initservletbean() throws servletexception 

long starttime = system.currenttimemillis();

try

catch (servletexception | runtimeexception ex)

if (logger.isdebugenabled())

// a context instance was injected at construction time -> use it

if (!cwac.isactive()) }}

}if (wac == null)

if (wac == null)

if (!this.refresheventreceived)

}if (this.publishcontext)

return wac;

}initmultipartresolver(context);

initlocaleresolver(context);

initthemeresolver(context);

inithandleradapters(context);

inithandlerexceptionresolvers(context);

initrequesttoviewnametranslator(context);

initviewresolvers(context);

initflashmapmanager(context);

}detecthandlers();

}protected void detecthandlers() throws bean***ception

}if ((logger.isdebugenabled() && !gethandlermap().isempty()) || logger.istraceenabled())

}determineurlsforhandler()在獲取url之後,registerhandler()對handler進行註冊。

spring mvc初始化及其原理

spring mvc啟動過程大致分為兩個過程 1 contextloaderlistener初始化,例項化ioc容器,並將此容器例項註冊到servletcontext中。2 dispatcherservlet初始化。1.listener org.springframework.web.context...

springMVC啟動初始化過程

在web.xml裡配置分發servlet和contextloaderlistener,contextloaderlistener是spring提供的類,它繼承了contextloader類和實現了servletcontextlistener介面。servletcontextlistener負責監聽w...

Spring 一 SpringMvc初始化流程

執行contextinitialized 方法,初始化root上下文,並建立spring ioc容器 2.filter 過濾器 執行init 方法 3.servlet 執行init 方法,初始化webmvc上下文,並建立springmvc ioc容器 注 spring和springmvc的容器具有父...