spring boot與spring mvc的區別是什麼?
導讀 | Spring 框架就像一個家族,有眾多衍生產品例如 boot、security、jpa等等。但他們的基礎都是Spring 的 ioc和 aop ioc 提供了依賴注入的容器 aop ,解決了面向橫切面的程式設計,然後在此兩者的基礎上實現了其他延伸產品的高階功能。Spring MVC是基於 Servlet 的一個 MVC 框架 主要解決 WEB 開發的問題,因為 Spring 的配置非常複雜,各種XML、 JavaConfig、hin處理起來比較繁瑣。於是為了簡化開發者的使用,從而創造性地推出了Spring boot,約定優於配置,簡化了spring的配置流程。 |
說得更簡便一些:Spring 最初利用“工廠模式”(DI)和“代理模式”(AOP)解耦應用元件。大家覺得挺好用,於是按照這種模式搞了一個 MVC框架(一些用Spring 解耦的元件),用開發 web 應用( SpringMVC )。然後有發現每次開發都寫很多樣板程式碼,為了簡化工作流程,於是開發出了一些“懶人整合包”(starter),這套就是 Spring Boot。
Spring MVC提供了一種輕度耦合的方式來開發web應用。
Spring MVC是Spring的一個模組,式一個web框架。透過Dispatcher Servlet, ModelAndView 和 View Resolver,開發web應用變得很容易。解決的問題領域是網站應用程式或者服務開發——URL路由、Session、模板引擎、靜態Web資源等等。
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以後,專案初始化方法變了,配置檔案變了,另外就是不需要單獨安裝Tomcat這類容器伺服器了,maven打出jar包直接跑起來就是個網站,但你最核心的業務邏輯實現與業務流程實現沒有任何變化。
所以,用最簡練的語言概括就是:Spring 是一個“引擎”;Spring MVC 是基於Spring的一個 MVC 框架 ;Spring Boot 是基於Spring4的條件註冊的一套快速開發整合包。
原文來自:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2902731/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Spring MVC和Spring Boot的區別 - hackernoonMVCSpring Boot
- Spring boot與Spring cloud 是什麼關係?Spring BootCloud
- Spring Boot與Spring Cloud是什麼關係?Spring BootCloud
- spring、spring MVC、spring BootMVCSpring Boot
- 什麼是Spring Boot?Spring Boot
- (第二講)Spring&Spring MVC&Spring Boot三者之間的區別與聯絡MVCSpring Boot
- 什麼是Spring Boot?為什麼要學習Spring Boot?Spring Boot
- 什麼是Spring Boot Starters?Spring Boot
- Solon2 與 Spring Boot 的區別Spring Boot
- spring cloud+spring boot 電子商務-spring boot 引用方式${}和@@用法與區別CloudSpring Boot
- Spring MVC 到 Spring Boot 的簡化之路MVCSpring Boot
- Spring框架和Spring boot有啥區別?框架Spring Boot
- Strust2和Spring MVC的區別RustSpringMVC
- Spring Boot + Mybatis + Spring MVC環境配置(四):MVC框架搭建Spring BootMyBatisMVC框架
- 一個吃貨來說明Spring Boot與Spring cloud 是什麼關係Spring BootCloud
- SpringBoot和Spring有什麼區別?Spring Boot
- 聊聊Spring Boot幾個版本的區別Spring Boot
- Spring Boot + Mybatis + Spring MVC環境配置(一) :Spring Boot初始化,依賴新增Spring BootMyBatisMVC
- Spring Boot + Mybatis + Spring MVC環境配置(三):DataSource配置Spring BootMyBatisMVC
- tomcat + spring mvc原理外傳:spring mvc與前端的糾葛TomcatSpringMVC前端
- Spring 是什麼?Spring
- Spring Boot 為什麼這麼火?Spring Boot
- Spring Boot + Mybatis + Spring MVC環境配置(五):templates模板使用Spring BootMyBatisMVC
- Spring Boot + Mybatis + Spring MVC環境配置(二):Mybatis Generator配置Spring BootMyBatisMVC
- 面試官:什麼是 YAML?和 Spring Boot 有什麼關係?面試YAMLSpring Boot
- Spring認證_什麼是Spring GraphQL?Spring
- Spring認證_什麼是Spring Security?Spring
- Spring認證_什麼是Spring GraphQLSpring
- 「Spring認證」什麼是Spring GraphQL?Spring
- spring beanFactory與ApplicationContext區別SpringBeanAPPContext
- SCRM與CRM的區別是什麼?
- DMAIC與DMADV的區別是什麼?AI
- 什麼是Spring Data?Spring
- 為什麼Java大神,都在看Spring Boot和Spring Cloud的書?JavaSpring BootCloud
- 有了 Spring 為什麼還要弄個 Spring BootSpring Boot
- spring中的FactoryBean與ObjectFactory的區別SpringBeanObject
- Spring Boot中Tomcat是怎麼啟動的Spring BootTomcat
- 什麼是python?與PHP有什麼區別?PythonPHP