Spring Boot 與 Spring MVC各自的優缺點


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 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 的配置流程。

 

   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM