1. 程式人生 > >Spring MVC和Spring Boot的理解以及比較

Spring MVC和Spring Boot的理解以及比較



Spring MVC是什麼?
(1)Spring MVC是Spring提供的一個強大而靈活的模組式web框架。通過Dispatcher Servlet, ModelAndView 和 View Resolver,開發web應用變得很容易。
(2)SpringMVC是一種基於Java的以請求為驅動型別的輕量級Web框架,其目的是將Web層進行解耦,即使用“請求-響應”模型,從工程結構上實現良好的分層,區分職責,簡化Web開發。藉助於註解,Spring MVC提供了幾乎是POJO的開發模式,使得控制器的開發和測試更加簡單。這些控制器一般不直接處理請求,而是將其委託給Spring上下文中的其他bean,通過Spring的依賴注入功能,這些bean被注入到控制器中。
(3)Spring框架最核心的就是所謂的依賴注射和控制反轉。完全解耦類之間的依賴關係,一個類如果要依賴什麼,那就是一個介面。至於如何實現這個介面,這都不重要了。只要拿到一個實現了這個介面的類,就可以輕鬆的通過xml配置檔案把實現類注射到呼叫介面的那個類裡。所有類之間的這種依賴關係就完全通過配置檔案的方式替代了。




SpringMVC的優點:
(1)使用簡單,學習成本低。
(2)很容易就可以寫出效能優秀的程式.
(3)靈活性強,Spring MVC的框架易擴充套件


SpringMVC的缺點:
(1)Spring與MVC 的Servlet API 耦合,難以脫離容器獨立執行
(2)太過於細分,開發效率低
(3)過度追求完美,有過度設計的危險


解決的問題領域是:網站應用程式或者服務開發——URL路由、Session、模板引擎、靜態Web資源等等。










Spring Boot引入自動配置的概念,讓專案設定變得很容易。Spring Boot本身並不提供Spring框架的核心特性以及擴充套件功能,只是用於快速、敏捷地開發新一代基於Spring框架的應用程式。也就是說,它並不是用來替代Spring的解決方案,而是和Spring框架緊密結合用於提升Spring開發者體驗的工具。同時它集成了大量常用的第三方庫配置(例如Jackson, JDBC, Mongo, Redis, Mail等等),Spring Boot應用中這些第三方庫幾乎可以零配置的開箱即用(out-of-the-box),大部分的Spring Boot應用都只需要非常少量的配置程式碼,開發者能夠更加專注於業務邏輯。Spring Boot只是承載者,輔助開發者簡化專案搭建過程的。如果承載的是WEB專案,使用Spring MVC作為MVC框架,那麼工作流程和SpringMVC的是完全一樣的,因為這部分工作是Spring MVC做的而不是Spring Boot。


Spring Boot的核心功能:
(1)獨立執行的Spring專案
Spring Boot可以以jar包的形式進行獨立的執行,使用:java -jar xx.jar 就可以成功的執行專案,或者在應用專案的主程式中執行main函式即可;

(2)內嵌的Servlet容器
內嵌容器,使得我們可以執行執行專案的主程式main函式,並讓專案的快速執行;

(3)提供starter簡化Manen配置
Spring Boot提供了一系列的starter pom用來簡化我們的Maven依賴

(4)自動配置Spring
Spring Boot會根據我們專案中類路徑的jar包/類,為jar包的類進行自動配置Bean,這樣一來就大大的簡化了我們的配置。當然,這只是Spring考慮到的大多數的使用場景,在一些特殊情況,我們還需要自定義自動配置;


(5)應用監控
Spring Boot提供了基於http、ssh、telnet對執行時的專案進行監控;



springboot 要解決的問題:
1.如何精簡配置;如何讓編碼、部署、監控變簡單;
2.如何方便的讓spring生態圈和其他工具鏈整合


優點:
對新手來說,無需任何門檻,只要懂Maven[的新手]會看文件就能亦步亦趨的開始一個新專案;
對高手來說,改配置也是分分鐘的事。另外fat jar的打包方式讓部署方式變得優雅。


缺點:
就是簡單的背後蘊藏了巨大的學習曲線。入門容易,但是如果沒有完整學習spring的體系,碰到問題就一臉懵逼。如果沒有一定的經驗,根本就不知道springboot自動做了什麼。










SpingMVC與SpringBoot的聯絡與區別:
聯絡:
Spring 最初利用“工廠模式”( DI )和“代理模式”( AOP )解耦應用元件。按照這種模式搞了一個 MVC 框架(一些用 Spring 解耦的元件),用開發 web 應用( SpringMVC )。後來發現每次開發都要搞很多依賴,寫很多樣板程式碼,使程式碼臃腫而麻煩,於是聰明的前人整理了一些懶人整合包( starter ),這套就是 Spring Boot 。


區別:
Spring MVC 是基於 Servlet 的一個 MVC框架 主要解決 WEB 開發的問題 但關於Spring 的配置比較 ;而Spring boot 的原則是:約定優於配置 ,可以極大地簡化了 spring 的配置流程。

相關推薦

Spring MVCSpring Boot理解以及比較

Spring MVC是什麼? (1)Spring MVC是Spring提供的一個強大而靈活的模組式web框架。通過Dispatcher Servlet, ModelAndView 和 View Resolver,開發web應用變得很容易。 (2)SpringMVC是一種基

淺析Spring MVCSpring BOOT之間的簡化小秘密

solver 應用開發 b- 存在 cts frame 幫助 假設 導入jar 從Servlet技術到Spring和Spring MVC,開發Web應用變得越來越簡捷。但是Spring和Spring MVC的眾多配置有時卻讓人望而卻步,相信有過Spring MVC開發經驗的

spring mvcspring boot實現AOP

spring boot實現AOP 首先建立切面類需要@Aspect,@Component註解 然後建立@Pointcut確定什麼方法實現aop @Pointcut("execution(* com.air_baocl.controller.selectApi.*(..))")

Spring BootSpring MVC Spring 有什麼區別?

SpringFrame       SpringFramework 最重要的特徵是依賴注入。所有 SpringModules(多模組) 不是依賴注入就是 IOC 控制反轉。       當我們恰當的使用 DI 或者是 IOC 的時候,我

Spring MvcSpring Boot讀取Profile方式

spring boot java程式碼中獲取spring.profiles.active - u013042707的專欄 - CSDN部落格https://blog.csdn.net/u013042707/article/details/80632057 在Java類中取web.xml中配置的profile

SpringMVC系列(十五)Spring MVCSpring整合時實例被創建兩次的解決方案以及Spring 的 IOC 容器 SpringMVC 的 IOC 容器的關系

問題 nbsp frame ota 展示 not als pri exc 一、Spring MVC與Spring整合時實例被創建兩次的解決方案 1.問題產生的原因 Spring MVC的配置文件和Spring的配置文件裏面都使用了掃描註解<context:compon

spring mvc配置,可以理解為對映機制,即http urlaction程式碼之間的關係的配置

1web.xml配置 <servlet>   <servlet-name>SpringMVC</servlet-name>   <servlet-class>org.springframework.web.servlet.Di

Spring MVCStruts2的比較的優點

我們用struts2時採用的傳統的配置檔案的方式,並沒有使用傳說中的0配置。spring3 mvc可以認為已經100%零配置了(除了配置spring mvc-servlet.xml外)。 Spring MVC和Struts2的區別: 1. 機制:spring mvc的

springspring MVCspring Boot

hibernate 有意義 簡化 錯誤處理 ber 錯誤 基本 cto 容易 Spring 是一個“引擎” Spring MVC 是基於 Spring 的一個 MVC 框架 Spring Boot 是基於 Spring4 的條件註冊的一套快速開發整合包 Spring

[讀後感]spring Mvc 教程框架實例以及系統演示下載

溝通 odi size ffi com xml文件 點贊 事務 共享 [讀後感]spring Mvc 教程框架實例以及系統演示下載太陽火神的漂亮人生 (http://blog.csdn.net/opengl_es)本文遵循“署名-非商業用途-保持一致”創作公用協議轉載請

java電子商務系統源碼 Spring MVC+mybatis+spring boot+spring security

電子商務平臺 word 解決方案 功能 截圖 mybatis 互聯 包括 數據監控 鴻鵠雲商大型企業分布式互聯網電子商務平臺,推出PC+微信+APP+雲服務的雲商平臺系統,其中包括B2B、B2C、C2C、O2O、新零售、直播電商等子平臺。 分布式、微服務、雲架構電子商

spring容器springmvc容器,以及web容器的關系

初始化 pack font BE 識別 exti 定義 獲取spring gmv   說到spring和springmvc,其實有很多工作好多年的人也分不清他們有什麽區別,如果你問他項目裏用的什麽MVC技術,他會說我們用的spring和mybatis,或者spring和hi

Spring MvcSpringBoot整合Swagger2

各位同學大家好,最近專案趕進度,沒有鑽研技術的時間,但碰巧今天需要在Spring專案上進行SpringMvc和Swagger的整合,而第一次使用Swagger是在SpringBoot專案上,因此踩了不少的坑,於是想和大家分享一下 :關於Swagger在SpringBoot或者和SpringMvc的整

Spring MVCSpring BOOT的簡化道路

patch project jar world 服務器 ... springmvc 數據 核心概念 背景 從Servlet技術到Spring和Spring MVC,開發Web應用變得越來越簡捷。但是Spring和Spring MVC的眾多配置有時卻讓人望而卻步,相信有過Sp

Spring IocAOP的理解

轉載自:https://blog.csdn.net/u013148153/article/details/80293587  Ioc和AOP是Spring的兩大核心,面試的時候也經常被問及對這兩個概念的理解,因此也記下我對此的理解,方便以後查漏補缺。  一、控制反轉(Ioc,

java電子商務系統原始碼 Spring MVC+mybatis+spring cloud+spring boot+spring security

鴻鵠雲商大型企業分散式網際網路電子商務平臺,推出PC+微信+APP+雲服務的雲商平臺系統,其中包括B2B、B2C、C2C、O2O、新零售、直播電商等子平臺。 分散式、微服務、雲架構電子商務平臺 java b2b2c o2o 技術解決方案 開發語言: java、j2ee 資料庫:mysql

Spring MVCSpring Boot 的簡化之路

背景 從Servlet技術到Spring和Spring MVC,開發Web應用變得越來越簡捷。但是Spring和Spring MVC的眾多配置有時卻讓人望而卻步,相信有過Spring MVC開發經驗的朋友能深刻體會到這一痛苦。因為即使是開發一個Hello-World的Web應用,都需要我們在po

java電子商務系統源碼 Spring MVC+mybatis+spring cloud+spring boot+spring security

聲明式 核心技術 配置管理 load 中間 更強 中心 sql china 鴻鵠雲商大型企業分布式互聯網電子商務平臺,推出PC+微信+APP+雲服務的雲商平臺系統,其中包括B2B、B2C、C2C、O2O、新零售、直播電商等子平臺。 分布式、微服務、雲架構電子商務平臺 jav

Spring MVC+mybatis+spring cloud+spring boot+spring

分散式、微服務、雲架構電子商務平臺 java b2b2c o2o 技術解決方案 開發語言: java、j2ee 資料庫:mysql JDK支援版本: JDK1.6、JDK1.7、JDK1.8版本 通用框架:maven+springmvc+mybatis+spring cloud+spring boo

springspring MVCspring boot的聯絡

做好的模型總需要一個展示的地方,這不,開始瞭解下服務端相關的知識,雖然有一定的瞭解以及工程實踐,單知識水平依舊停留在status和hibernate的階段,連基本的ssh框架都達不到,技術更新太快,一定的加快學習的步伐。在瞭解過程中spring的這幾個就給我帶來了很大的困惑,spring