springmvc 和springboot 面試相關點
剛剛開通博客,因為最近在進行各種面試,遇到各種面試問題,用這個機會整理幾篇文章方便日後需要
springmvc 和springboot
spring boot只是一個配置工具,整合工具,輔助工具.
springmvc是框架,項目中實際運行的代碼
Spring 框架就像一個家族,有眾多衍生產品例如 boot、security、jpa等等。但他們的基礎都是Spring 的ioc和 aop. ioc 提供了依賴註入的容器, aop解決了面向橫切面的編程,然後在此兩者的基礎上實現了其他延伸產品的高級功能。
Spring MVC是基於Servlet 的一個 MVC 框架主要解決 WEB 開發的問題,因為 Spring 的配置非常復雜,各種XML、 JavaConfig處理起來比較繁瑣。於是為了簡化開發者的使用,從而創造性地推出了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的功能
1.通過starter和依賴管理解決依賴問題
2.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。
3. 通過內嵌web容器,由應用啟動tomcat,而不是tomcat啟動應用,來解決部署運行問題
對使用者來說,換用Spring Boot以後,項目初始化方法變了,配置文件變了,另外就是不需要單獨安裝Tomcat這類容器服務器了,maven打出jar包直接跑起來就是個網站,但你最核心的業務邏輯實現與業務流程實現沒有任何變化。
所以,用最簡練的語言概括就是:
Spring 是一個“引擎”;
Spring MVC 是基於Spring的一個 MVC 框架;
Spring Boot 是基於Spring4的條件註冊的一套快速開發整合包。
springboot和springcloud
Spring boot可以離開Spring Cloud獨立使用開發項目,但是Spring Cloud離不開Spring boot,屬於依賴的關系
Spring Cloud基於Spring Boot,為微服務體系開發中的架構問題,提供了一整套的解決方案——服務註冊與發現,服務消費,服務保護與熔斷,網關,分布式調用追蹤,分布式配置管理等
Spring Cloud是一個基於Spring Boot實現的雲應用開發工具;Spring boot專註於快速、方便集成的單個個體,Spring Cloud是關註全局的服務治理框架;spring boot使用了默認大於配置的理念,很多集成方案已經幫你選擇好了,能不配置就不配置,Spring Cloud很大的一部分是基於Spring boot來實現。
最後該文章最終還是來自我們的阿武。
springmvc 和springboot 面試相關點