SpringMVC框架、Spring boot框架、SSM區別

參考:html

構建微服務:Spring boot 入門篇       https://www.cnblogs.com/ityouknow/p/5662753.html前端

Spring Cloud與Docker的完美結合 http://www.javashuo.com/article/p-wmxzgqpr-kn.htmlweb

SpringCloud與SpringBoot區別  https://blog.csdn.net/terrydu/article/details/88565833ajax

Spring,Spring MVC及Spring Boot區別   https://www.jianshu.com/p/42620a0a2c33spring

Springboot,SSM框架比較,區別   http://www.javashuo.com/article/p-xiubvirk-de.html服務器

 

一、Spring boot 是 Spring 的一套快速配置腳手架,能夠基於spring boot 快速開發單個微服務;Spring Cloud是一個基於Spring Boot實現的雲應用開發工具;網絡

二、Spring boot專一於快速、方便集成的單個個體,Spring Cloud是關注全局的服務治理框架;數據結構

三、spring boot使用了默認大於配置的理念,不少集成方案已經幫你選擇好了,能不配置就不配置,Spring Cloud很大的一部分是基於Spring boot來實現。架構

四、Spring boot能夠離開Spring Cloud獨立使用開發項目,可是Spring Cloud離不開Spring boot,屬於依賴的關係。app

 

1.1 SpringMVC 概述 

1) Spring 爲展示層提供的基於 MVC 設計理念的優秀的 Web 框架,是目前最主流的

MVC 框架之一

2Spring3.0 後全面超越 Struts2,成爲最優秀的 MVC 框架。

3Spring MVC 經過一套 MVC 註解,讓 POJO 成爲處理請求的控制器,而無須實現任

何接口。

4)支持 REST 風格的 URL 請求。

5)採用了鬆散耦合可插拔組件結構,比其餘 MVC 框架更具擴展性和靈活性。

 

1.1 SpringMVC是什麼

 

1)一種輕量級的、基於MVC的Web層應用框架。偏前端而不是基於業務邏輯層。Spring框架的一個後續產品。

 

2Spring框架結構圖(新版本):

1.3 SpringMVC能幹什麼

1) 天生與Spring框架集成,如:(IOC,AOP)

2) 支持Restful風格

3) 進行更簡潔的Web層開發

4) 支持靈活的URL到頁面控制器的映射

5) 很是容易與其餘視圖技術集成,如:Velocity、FreeMarker等等

6) 由於模型數據不存放在特定的API裏,而是放在一個Model裏(Map數據結構實現,所以很容易被其餘框架使用)

7) 很是靈活的數據驗證、格式化和數據綁定機制、能使用任何對象進行數據綁定,沒必要實現特定框架的API

8) 更加簡單、強大的異常處理

9) 對靜態資源的支持

10) 支持靈活的本地化、主題等解析

 

1.4 SpringMVC怎麼玩

1) 將Web層進行了職責解耦,基於請求-響應模型

2) 經常使用主要組件

① DispatcherServlet:前端控制器

② Controller:處理器/頁面控制器,作的是MVC中的C的事情,但控制邏輯轉移到前端控制器了,用於對請求進行處理

③ HandlerMapping :請求映射處處理器,找誰來處理,若是映射成功返回一個HandlerExecutionChain對象(包含一個Handler處理器(頁面控制器)對象、多個HandlerInterceptor攔截器對象)

④ View Resolver : 視圖解析器,找誰來處理返回的頁面。把邏輯視圖解析爲具體的View,進行這種策略模式,很容易更換其餘視圖技術;

n 如InternalResourceViewResolver將邏輯視圖名映射爲JSP視圖

⑤ LocalResolver:本地化、國際化

⑥ MultipartResolver:文件上傳解析器

⑦ HandlerExceptionResolver:異常處理器

 

1.5 REST是什麼?

1) REST:即 Representational State Transfer(資源)表現層狀態轉化。是目前最流行

的一種互聯網軟件架構。它結構清晰、符合標準、易於理解、擴展方便,因此正獲得愈來愈多網站的採用

① 資源(Resources):網絡上的一個實體,或者說是網絡上的一個具體信息。

它能夠是一段文本、一張圖片、一首歌曲、一種服務,總之就是一個具體的存在。

能夠用一個URI(統一資源定位符)指向它,每種資源對應一個特定的 URI 。

獲取這個資源,訪問它的URI就能夠,所以 URI 即爲每個資源的獨一無二的識別符。

② 表現層(Representation):把資源具體呈現出來的形式,叫作它的表現層(Representation)。好比,文本能夠用 txt 格式表現,也能夠用 HTML 格式、XML 格式、JSON 格式表現,甚至能夠採用二進制格式。

③ 狀態轉化(State Transfer):每發出一個請求,就表明了客戶端和服務器的一次交互過程。HTTP協議,是一個無狀態協議,即全部的狀態都保存在服務器端。所以,若是客戶端想要操做服務器,必須經過某種手段,讓服務器端發生「狀態轉化」(State Transfer)

而這種轉化是創建在表現層之上的,因此就是 「表現層狀態轉化」。

④ 具體說,就是 HTTP 協議裏面,四個表示操做方式的動詞:GET、POST、PUT、DELETE。

它們分別對應四種基本操做:GET 用來獲取資源,POST 用來新建資源,PUT 用來更新資源,DELETE 用來刪除資源。

 

2. Spring SpringMVC的整合問題: 

1) 須要進行 Spring 整合 SpringMVC ? 

2) 仍是否須要再加入 Spring IOC 容器 ? 

3) 是否須要在web.xml 文件中配置啓動 Spring IOC 容器的 ContextLoaderListener ?

 

須要: 一般狀況下, 相似於數據源, 事務, 整合其餘框架都是放在 Spring 的配置文件   (而不是放在 SpringMVC 的配置文件中). 實際上放入 Spring 配置文件對應的 IOC 容器中的還有 Service Dao.

不須要: 都放在 SpringMVC 的配置文件中. 也能夠分多個 Spring 的配置文件, 而後使 import 節點導入其餘的配置文件 

 

 

3. SpringIOC 容器和 SpringMVC IOC 容器的關係

 

SpringMVC IOC 容器中的 bean 能夠來引用 Spring IOC 容器中的 bean.

 

返回來呢 ? 反之則不行. Spring IOC 容器中的 bean 卻不能來引用 SpringMVC IOC 容器中的 bean 

 

1)  Spring MVC 配置文件中引用業務層的 Bean

 

2) 多個 Spring IOC 容器之間能夠設置爲父子關係,以實現良好的解耦。

 

3) Spring MVC WEB 層容器可做爲 「業務層」 Spring 容器的子容器:

 

WEB 層容器能夠引用業務層容器的 Bean,而業務層容器卻訪問不到 WEB 層容器的 Bean

4. SpringMVC對比Struts2

1 Spring MVC 的入口是 Servlet, Struts2 FilterSpring MVC 會稍微比 Struts2 快些.

2 Spring MVC 是基於方法設計, Sturts2 是基於類,

    每次發一次請求都會實例一個 Action.

1) Spring MVC 使用更加簡潔, 開發效率Spring MVC確實比 struts2 : 支持 JSR303,  ajax 的請求更方便

2) Struts2 OGNL 表達式使頁面的開發效率相比 Spring MVC 更高些

相關文章
相關標籤/搜索