Spring MVC 了解WebApplicationContext中特殊的bean類型

2018-07-26 13:58 更新

Spring的DispatcherServlet使用了特殊的bean來處理請(qǐng)求、渲染視圖等,這些特定的bean是Spring MVC框架的一部分。如果你想指定使用哪個(gè)特定的bean,你可以在web應(yīng)用上下文WebApplicationContext中簡(jiǎn)單地配置它們。當(dāng)然這只是可選的,Spring MVC維護(hù)了一個(gè)默認(rèn)的bean列表,如果你沒有進(jìn)行特別的配置,框架將會(huì)使用默認(rèn)的bean。下一小節(jié)會(huì)介紹更多的細(xì)節(jié),這里,我們將先快速地看一下,DispatcherServlet都依賴于哪些特殊的bean來進(jìn)行它的初始化。

bean的類型作用
HandlerMapping處理器映射。它會(huì)根據(jù)某些規(guī)則將進(jìn)入容器的請(qǐng)求映射到具體的處理器以及一系列前處理器和后處理器(即處理器攔截器)上。具體的規(guī)則視HandlerMapping類的實(shí)現(xiàn)不同而有所不同。其最常用的一個(gè)實(shí)現(xiàn)支持你在控制器上添加注解,配置請(qǐng)求路徑。當(dāng)然,也存在其他的實(shí)現(xiàn)。
HandlerAdapter處理器適配器。拿到請(qǐng)求所對(duì)應(yīng)的處理器后,適配器將負(fù)責(zé)去調(diào)用該處理器,這使得DispatcherServlet無需關(guān)心具體的調(diào)用細(xì)節(jié)。比方說,要調(diào)用的是一個(gè)基于注解配置的控制器,那么調(diào)用前還需要從許多注解中解析出一些相應(yīng)的信息。因此,HandlerAdapter的主要任務(wù)就是對(duì)DispatcherServlet屏蔽這些具體的細(xì)節(jié)。
HandlerExceptionResolver處理器異常解析器。它負(fù)責(zé)將捕獲的異常映射到不同的視圖上去,此外還支持更復(fù)雜的異常處理代碼。
ViewResolver視圖解析器。它負(fù)責(zé)將一個(gè)代表邏輯視圖名的字符串(String)映射到實(shí)際的視圖類型View上。
LocaleResolver & LocaleContextResolver地區(qū)解析器 和 地區(qū)上下文解析器。它們負(fù)責(zé)解析客戶端所在的地區(qū)信息甚至?xí)r區(qū)信息,為國(guó)際化的視圖定制提供了支持。
ThemeResolver主題解析器。它負(fù)責(zé)解析你web應(yīng)用中可用的主題,比如,提供一些個(gè)性化定制的布局等。
MultipartResolver解析multi-part的傳輸請(qǐng)求,比如支持通過HTML表單進(jìn)行的文件上傳等。
FlashMapManagerFlashMap管理器。它能夠存儲(chǔ)并取回兩次請(qǐng)求之間的FlashMap對(duì)象。后者可用于在請(qǐng)求之間傳遞數(shù)據(jù),通常是在請(qǐng)求重定向的情境下使用。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)