天天看點

《精通Spring MVC 4》——第2章 精通MVC架構 2.1MVC架構

本節書摘來自異步社群《精通spring mvc 4》一書中的第2章,第2.1節,作者:【美】geoffroy warin著,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

在本章中,我們将會讨論mvc架構理念以及spring mvc是如何實作這些理念的。

本章将會繼續使用上一章的應用,并且會建構一些有意思的功能。目标是設計一個簡單的頁面,在這個頁面上使用者可以根據特定的條件(criteria)查詢tweet,并将其展現出來。

我們會讓spring mvc與一個現代化的模闆引擎協作,這個引擎也就是thymeleaf,并且還會試圖了解這個架構的内部機制。引導使用者在不同的視圖間流轉,最後,會借助webjars和materialize讓應用在外觀上看起來更棒。

大多數人對mvc這個縮寫應該不會感到陌生。它代表的是模型(model)、視圖(view)和控制器(controller),它會将資料和展現層進行解耦,被視為建構使用者界面的一種很流行的方式。

自從在smalltalk領域中提出這個理念,并在ruby on rails架構中采用之後,mvc就變得廣受歡迎。

如圖2-1所示,它的架構可以分為3層。

模型:包含了應用中所需的各種展現資料。

視圖:由資料的多種表述所組成,它将會展現給使用者。

控制器:将會處理使用者的操作,它是連接配接模型和視圖的橋梁。

《精通Spring MVC 4》——第2章 精通MVC架構 2.1MVC架構

圖2-1

mvc背後的理念是将視圖與模型進行解耦,模型必須是自包含的并且與ui無關。這樣的話,基本上就可以實作相同的資料跨多個視圖重用。其實,這些視圖就是以不同的方式來檢視資料。通過鑽取(drill down)或使用不同的渲染器(html、pdf),可以很好地闡述這一原則。

控制器會作為使用者和資料的中間協調者,它的角色就是控制終端使用者的可用行為,并引導他們在應用的不同視圖間跳轉。