第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

Spring MVC 簡介

spring 官方 logo

1. 前言

從本節(jié)課開始和大家一起學習 Spring MVC

WEB MVC 框架有很多,但是,Spring MVC 卻有著其它 WEB MVC 框架無可比擬的優(yōu)勢,本節(jié)課將從 以下幾個方面簡要介紹 Spring MVC ,讓大家對它有一個初步印象。

  • Spring MVC 與 Spring 的關(guān)系;
  • Spring MVC 的功能;
  • Spring MVC 的特性;
  • Spring MVC 和其它 MVC 開發(fā)框架的比較。

2. Spring MVC 和 Spring 的關(guān)系

要真正理解、掌握 Spring MVC 的使用 ,前提是要有 Spring 的知識儲備。

為什么?

因為它們是一家人。

大家都學過 Spring ,知道 Spring 剛出世時,提供了 IOC & DIAOP 兩大核心功能模塊,這兩大核心模塊不亞于是編程界的倚天、屠龍,對企業(yè)項目開發(fā)過程產(chǎn)生了巨大的影響。

對初學者而言,所謂學習 Spring ,其課程的主要內(nèi)容就是講解 IOCAOP 的概念及其使用。

后來,Spring 在這 2 大核心功能的的基礎(chǔ)之上,延伸出更多的功能模塊,由這些功能模塊為企業(yè)項目開發(fā)提供了較完整的、全方位的解決方案。

圖片描述

spring 模塊體系

總結(jié)一下,其實 Spring 這個概念有 2 層含義:

  • 狹義角度: Spring 指的是 Spring Core 核心功能模塊。是一個個體概念;
  • 廣義角度: Spring 是一個提供了眾多功能模塊的生態(tài)圈。是一個整體概念。

Spring MVCSpring 的關(guān)系,也可以從 2 個方面理解:

  • 水平角度: Spring MVCSpring 生態(tài)圈中的一個功能模塊。兩者是包含與被包含的關(guān)系;
  • 垂直角度: Spring MVC 是建立在 Spring 核心基礎(chǔ)功能之上的一個實用性的 WEB MVC 框架,是 Spring 的延伸和擴展。

Spring MVC 的版本是跟著 Spring 走的,Spring 3.X 是一個分水嶺,此版本提供更多實用性的功能,現(xiàn)在最新版本是 5.X 。本課程使用的是 5.1.13.RELEASE 。

Tips: 學習時,你可以根據(jù)需要更改版本號,從使用角度來講,版本微調(diào)沒有多大區(qū)別。

3. Spring MVC 是什么?

Spring MVC 是什么?答案很簡單,它是一個 WEB MVC 框架。

3.1 Spring MVC 的功能

MVC 是分離思想,對程序分層僅僅只是提供了指導性的想法,并沒有具體的可實施的方案。不同的項目中,具體的分層細節(jié)可由架構(gòu)師把控。經(jīng)過時間檢驗后,行業(yè)中會存留一些事實上的標準。

Spring MVC 就是一款為 WEB 項目提供的 MVC 分層框架,在基于 Spring 的基礎(chǔ)功能或借助于 Spring 生態(tài)圈中的其它功能模塊,為 WEB 項目提供了具體的 MVC 分層方案。

隨著課程內(nèi)容的展開,大家會逐步體會到 Spring MVC 是如何使用 MVC 理念 撐起整個 WEB 項目,以及如何簡化開發(fā)者的工作。

但是,要真正了解 Spring MVC 的功能,則要先從理解 MVC 開始。

3.2 MVC 是什么

一個應(yīng)用程序,當功能越來越龐大、邏輯越來越復雜、代碼越來越多時,必然會采用分而治之的方案。分,容易,如何分才能分得清晰、便于維護,這是一個與管理有關(guān)的學問。

MVC 提出了一種分離的策略,這種想法或思想一問世,便讓世人茅塞頓開。

MVC 的分離思想:

  • 把整個應(yīng)用程序中和用戶進行交互的功能代碼歸納在一起,這部分代碼整體稱為 VView 或叫視圖層);
  • 把專門用來進行數(shù)據(jù)傳遞或數(shù)據(jù)邏輯處理的功能代碼歸納在一起,稱其為 MModel 或叫l(wèi)模型層)。

C 指的是哪一部分功能代碼呢?

因為VM 是要經(jīng)常交流、溝通的,V 需要展示 M 處理過的數(shù)據(jù),同時,M 也可能需要 V 提供的用戶交互時輸入的數(shù)據(jù)。雖然分了,但兩者之間存在依賴關(guān)系。我們不讓 VM 直接交流,而是在兩者之間引入了一個叫做 C(控制器)的對象,所以說 C 就是 VM 之間的橋梁!

這個 C(控制器)對象感覺在硬生生的拆散別人,不過這種拆分是善意且友好的。

為什么這么說?

  • 滿足 OOP 中的低耦合性原則,解耦 VM 之間的關(guān)系;
  • M 需要用戶交互時輸入的數(shù)據(jù)時,可以不用管 V 是誰,只要有控制器傳數(shù)據(jù)就可以;
  • 同時,V 也不用關(guān)心 M 在哪里,只要有數(shù)據(jù)提供給自己就可以。

如果現(xiàn)在要編寫一個 WEB 視圖和 Swing 視圖的雙客戶端應(yīng)用程序時,只需要換一個 C 就可以,M 可以重用。

4. Spring MVC 的特性

要了解 Spring MVC 的功能特性,就需要從 WEB 應(yīng)用開發(fā)的源頭說起。

WEB 應(yīng)用程序的主流開發(fā)技術(shù)有 3 種:

  • servlet;
  • php;
  • .net

Servlet 是基于 Java 語言的動態(tài) web開發(fā)技術(shù),Servlet 指的是 J2EE 中所提出來的企業(yè)級服務(wù)器開發(fā)規(guī)范。

原生 Servlet 構(gòu)建的 MVC 開發(fā)模式有幾個缺點:

  • Servlet 本身采用單例設(shè)計模式,生命周期由服務(wù)器維護,存在線程安全隱患的問題;
  • 理論上講,每一次不同的 http 請求需要一個 Servlet 組件來響應(yīng),當請求類型比較多時,Servlet 就會相應(yīng)增加,也意味著每一個 Servlet 都可以成為進入服務(wù)器的入口。想想你家里對外開了好多扇門,小偷終能找到破綻;
  • 隨著 Servlet 數(shù)量的增加,對服務(wù)器的存儲空間也會產(chǎn)生壓力;
  • 使用 Servlet 響應(yīng)用戶請求時,每一個響應(yīng)邏輯都需要開發(fā)者不厭其煩地做些重復的事情,如,解析請求包中的數(shù)據(jù)、構(gòu)建響應(yīng)包、設(shè)置頁面跳轉(zhuǎn)等等。

這些問題,在 Spring MVC 中都得到了很好的解決。

  • 使用 Spring MVC 時,就只有一個門可以進入應(yīng)用程序,這個門叫前端(中央)控制器,所有請求統(tǒng)一經(jīng)過這個前端控制器分流到具體的內(nèi)部響應(yīng)組件;
  • Spring MVCSpring 家族中的一員,有句話叫做“近水樓臺先得月”。使用 Spring MVC 時所需要的 WEB 組件也好、其它的邏輯組件也好,都經(jīng)由 Spring IOC 創(chuàng)建,Spring IOC 容器對組件的生命周期可進行伸縮性設(shè)置管理,可根據(jù)組件特性保證其線程安全性;
  • Spring MVCSpring 有直屬血緣的關(guān)系,兩者完美結(jié)合,使得程序的安全性和穩(wěn)定性有一定的保證;
  • Spring MVC 利用 Spring 的自動注入功能,能輕松地裝配好各組件之間的依賴,開發(fā)者只需要關(guān)注編寫自己的業(yè)務(wù)邏輯便可,和所有框架理念一樣,解放雙手,釋放大腦。

Spring MVC 設(shè)計的初衷,就是要做成一款輕量級框架,其內(nèi)在的原力讓我們一起在后續(xù)課程中慢慢釋放。

6. Spring MVC 與 Struts MVC

WEB MVC 框架領(lǐng)域中有一款叫做 Struts MVC 的前輩,曾經(jīng)也風光無限。當然,現(xiàn)在還是有很多企業(yè)在使用。

Struts MVCSpring MVC 是功能類型相同的框架,本體功能是一樣的。Struts MVC 相比較 Spring MVC, 沒有自己的生態(tài)圈。

MVC 框架與其它框架有一個顯著的不同點,MVC 是一個項目級別的架構(gòu)思想,MVC 框架用于程序的整體架構(gòu)設(shè)計,Struts MVC 很多功能需要借助于 Spring 實現(xiàn),很顯然沒 Spring MVCSpring 的吻合度好。

Spring MVC 后面是 Spring 這個靠山。愛屋及烏、就近原則會讓開發(fā)者更趨向于選擇 Spring MVC

7. 學習基礎(chǔ)

學習本課程,學習者需要一定的基礎(chǔ)知識:

  • JAVA 基礎(chǔ)知識;
  • 熟悉了解基于 Servlet 的 WEB 開發(fā);
  • 熟悉了解 Spring 相關(guān)知識。

8. 小結(jié)

本節(jié)課和大家一起講解 Spring MVCSpring 的關(guān)系,Spring 是基礎(chǔ),Spring MVCSpringWEB 應(yīng)用開發(fā)方向的延伸。背靠 Spring 強大的基礎(chǔ)核心功能,讓 Spring MVC 快速崛起,成為現(xiàn)代企業(yè)開發(fā)的標配。

Spring MVC 的具體功能是什么?

本文從 MVC 聊起,意在讓大家明白 Spring MVCWEB 項目提供了一種優(yōu)秀的 MVC 分層實現(xiàn)方案。