Spring框架介紹

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 能發(fā)光的Spring

SpringMVC框架介紹

·Spring MVC屬于SpringFrameWork的后續(xù)產(chǎn)品,已經(jīng)融合在Spring Web Flow里面。

spring框架提供了構(gòu)建Web 應(yīng)用程序的全功能 MVC 模塊。使用 Spring 可插入的 MVC架構(gòu),可以選擇是使用內(nèi)置的Spring Web 框架還是 Struts 這樣的 Web 框架。通過策略接口,Spring 框架是高度可配置的,而且包含多種視圖技術(shù),例如 JavaServer Pages(JSP)技術(shù)。

Spring MVC 框架并不知道使用的視圖,所以不會強(qiáng)迫您只使用JSP 技術(shù)。

Spring MVC 分離了控制器、模型對象、分派器以及處理程序?qū)ο蟮慕巧?,這種分離讓它們更容易進(jìn)行控制。

·Spring的MVC框架主要由DispatcherServlet、處理器映射、處理器(控制器)、視圖解析器、視圖組成。

SpringMVC原理圖


SpringMVC接口解釋

DispatcherServlet接口:

Spring提供的前端控制器,所有的請求都有經(jīng)過它來統(tǒng)一分發(fā)。在DispatcherServlet將請求分發(fā)給Spring Controller之前,需要借助于Spring提供的HandlerMapping定位到具體的Controller。

·HandlerMapping接口:

能夠完成客戶請求到Controller映射。

·Controller接口:

需要為并發(fā)用戶處理上述請求,因此實(shí)現(xiàn)Controller接口時,必須保證線程安全并且可重用。

Controller將處理用戶請求,這和Struts Action扮演的角色是一致的。一旦Controller處理完用戶請求,則返回ModelAndView對象給DispatcherServlet前端控制器,ModelAndView中包含了模型(Model)和視圖(View)。

從宏觀角度考慮,DispatcherServlet是整個Web應(yīng)用的控制器;從微觀考慮,Controller是單個Http請求處理過程中的控制器,而ModelAndView是Http請求過程中返回的模型(Model)和視圖(View)。

·ViewResolver接口:

Spring提供的視圖解析器(ViewResolver)在Web應(yīng)用中查找View對象,從而將相應(yīng)結(jié)果渲染給客戶。

SpringMVC運(yùn)行原理

1.客戶端請求提交到DispatcherServlet

2.由DispatcherServlet控制器查詢一個或多個HandlerMapping,找到處理請求的Controller

3.DispatcherServlet將請求提交到Controller

4.Controller調(diào)用業(yè)務(wù)邏輯處理后,返回ModelAndView

5.DispatcherServlet查詢一個或多個ViewResoler視圖解析器,找到ModelAndView指定的視圖

6.視圖負(fù)責(zé)將結(jié)果顯示到客戶端

·DispatcherServlet是整個Spring MVC的核心。它負(fù)責(zé)接收HTTP請求組織協(xié)調(diào)Spring MVC的各個組成部分。其主要工作有以下三項(xiàng):

1.截獲符合特定格式的URL請求。

2.初始化DispatcherServlet上下文對應(yīng)的WebApplicationContext,并將其與業(yè)務(wù)層、持久化層的WebApplicationContext建立關(guān)聯(lián)。

3.初始化Spring MVC的各個組成組件,并裝配到DispatcherServlet中。

看完之后對Spring是不是有了更深的認(rèn)識?不了解spring的是不可能有更高的發(fā)展的,干貨就分享到這,想了解更多技術(shù)的朋友可以進(jìn)群一起學(xué)習(xí),群號:552850199

注:加群要求

1、具有1-5工作經(jīng)驗(yàn)的,面對目前流行的技術(shù)不知從何下手,需要突破技術(shù)瓶頸的可以加。

2、在公司待久了,過得很安逸,但跳槽時面試碰壁。需要在短時間內(nèi)進(jìn)修、跳槽拿高薪的可以加。

3、如果沒有工作經(jīng)驗(yàn),但基礎(chǔ)非常扎實(shí),對java工作機(jī)制,常用設(shè)計(jì)思想,常用java開發(fā)框架掌握熟練的,可以加。

4、覺得自己很牛B,一般需求都能搞定。但是所學(xué)的知識點(diǎn)沒有系統(tǒng)化,很難在技術(shù)領(lǐng)域繼續(xù)突破的可以加。

5.阿里Java高級大牛直播講解知識點(diǎn),分享知識,多年工作經(jīng)驗(yàn)的梳理和總結(jié),帶著大家全面、科學(xué)地建立自己的技術(shù)體系和技術(shù)認(rèn)知!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容