(轉(zhuǎn))Spring MVC工作原理 及注解說明

SpringMVC框架介紹

1)springMVC屬于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ù)、Velocity泳桦、Tiles汤徽、iText 和 POI。Spring MVC 框架并不知道使用的視圖灸撰,所以不會強迫您只使用 JSP 技術(shù)谒府。

Spring MVC 分離了控制器、模型對象浮毯、分派器以及處理程序?qū)ο蟮慕巧暌撸@種分離讓它們更容易進行定制。

2) Spring的MVC框架主要由DispatcherServlet债蓝、處理器映射壳鹤、處理器(控制器)、視圖解析器饰迹、視圖組成芳誓。

SpringMVC原理圖

SpringMVC接口解釋

DispatcherServlet接口:

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

HandlerMapping接口:

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

Controller接口:

需要為并發(fā)用戶處理上述請求赂摆,因此實現(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運行原理

1.戶端請求提交到DispatcherServlet

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

3. DispatcherServlet將請求提交到Controller

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

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

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

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

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

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

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

說明:

是一種簡寫形式,可以讓初學(xué)者快速成應(yīng)用默認的配置方案屿储,會默認注冊

DefaultAnnotationHandleMapping以及AnnotionMethodHandleAdapter 這兩個 Bean,

這兩個 Bean 贿讹,前者對應(yīng)類級別, 后者對應(yīng)到方法級別够掠;

上在面的 DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter 是 Spring 為 @Controller 分發(fā)請求所必需的民褂。

annotation-driven 掃描指定包中類上的注解,常用的注解有:

復(fù)制代碼

@Controller 聲明Action組件

@Service 聲明Service組件 @Service("myMovieLister")

@Repository 聲明Dao組件

@Component 泛指組件, 當不好歸類時.

@RequestMapping("/menu") 請求映射

@Resource 用于注入疯潭,( j2ee提供的 ) 默認按名稱裝配助赞,@Resource(name="beanName")

@Autowired 用于注入,(srping提供的) 默認按類型裝配

@Transactional( rollbackFor={Exception.class}) 事務(wù)管理

@ResponseBody? 生成Json對象

@Scope("prototype") 設(shè)定bean的作用域

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末袁勺,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子畜普,更是在濱河造成了極大的恐慌期丰,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吃挑,死亡現(xiàn)場離奇詭異钝荡,居然都是意外死亡,警方通過查閱死者的電腦和手機舶衬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進店門埠通,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人逛犹,你說我怎么就攤上這事端辱。” “怎么了虽画?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵舞蔽,是天一觀的道長。 經(jīng)常有香客問我码撰,道長渗柿,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任脖岛,我火速辦了婚禮朵栖,結(jié)果婚禮上颊亮,老公的妹妹穿的比我還像新娘。我一直安慰自己陨溅,他們只是感情好终惑,可當我...
    茶點故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著声登,像睡著了一般狠鸳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上悯嗓,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天件舵,我揣著相機與錄音,去河邊找鬼脯厨。 笑死铅祸,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的合武。 我是一名探鬼主播临梗,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼稼跳!你這毒婦竟也來了盟庞?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤汤善,失蹤者是張志新(化名)和其女友劉穎什猖,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體红淡,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡不狮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了在旱。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片摇零。...
    茶點故事閱讀 39,834評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖桶蝎,靈堂內(nèi)的尸體忽然破棺而出驻仅,到底是詐尸還是另有隱情,我是刑警寧澤登渣,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布雾家,位于F島的核電站,受9級特大地震影響绍豁,放射性物質(zhì)發(fā)生泄漏芯咧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望敬飒。 院中可真熱鬧邪铲,春花似錦、人聲如沸无拗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽英染。三九已至揽惹,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間四康,已是汗流浹背搪搏。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留闪金,地道東北人疯溺。 一個月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像哎垦,于是被迫代替她去往敵國和親囱嫩。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內(nèi)容