天天看點

Spring Boot 與 MVC 的差別,這些終于搞明白了!Spring MVC的功能Spring Boot的功能

作者:潛龍勿用

Spring 架構就像一個家族,有衆多衍生産品例如 boot、security、jpa等等。但他們的基礎都是Spring 的 ioc和 aop ioc 提供了依賴注入的容器 aop ,解決了面向橫切面的程式設計,然後在此兩者的基礎上實作了其他延伸産品的進階功能。

Spring Boot 與 MVC 的差別,這些終于搞明白了!Spring MVC的功能Spring Boot的功能

Spring MVC是基于 Servlet 的一個 MVC 架構 主要解決 WEB 開發的問題,因為 Spring 的配置非常複雜,各種XML、 JavaConfig、hin處理起來比較繁瑣。于是為了簡化開發者的使用,進而創造性地推出了Spring boot,約定優于配置,簡化了spring的配置流程。

說得更簡便一些:Spring 最初利用“工廠模式”(DI)和“代理模式”(AOP)解耦應用元件。大家覺得挺好用,于是按照這種模式搞了一個 MVC架構(一些用Spring 解耦的元件),用開發 web 應用( SpringMVC )。然後有發現每次開發都寫很多樣闆代碼,為了簡化工作流程,于是開發出了一些“懶人整合包”(starter),這套就是 Spring Boot。

Spring MVC的功能

Spring MVC提供了一種輕度耦合的方式來開發web應用。

Spring MVC是Spring的一個子產品,式一個web架構。通過Dispatcher Servlet, ModelAndView 和 View Resolver,開發web應用變得很容易。解決的問題領域是網站應用程式或者服務開發——URL路由、Session、模闆引擎、靜态Web資源等等。

Spring Boot 與 MVC 的差別,這些終于搞明白了!Spring MVC的功能Spring Boot的功能

Spring Boot的功能

Spring Boot實作了自動配置,降低了項目搭建的複雜度。

衆所周知Spring架構需要進行大量的配置,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架構,那麼工作流程和你上面描述的是完全一樣的,因為這部分工作是Spring MVC做的而不是Spring Boot。

Spring Boot 與 MVC 的差別,這些終于搞明白了!Spring MVC的功能Spring Boot的功能

對使用者來說,換用Spring Boot以後,項目初始化方法變了,配置檔案變了,另外就是不需要單獨安裝Tomcat這類容器伺服器了,maven打出jar包直接跑起來就是個網站,但你最核心的業務邏輯實作與業務流程實作沒有任何變化。

是以,用最簡練的語言概括就是:

Spring 是一個“引擎”;

Spring MVC 是基于Spring的一個 MVC 架構 ;

Spring Boot 是基于Spring4的條件注冊的一套快速開發整合包。

歡迎大家一起交流,喜歡文章記得點個贊,感謝支援!