1. 程式人生 > >springmvc 和springboot 面試相關點

springmvc 和springboot 面試相關點

約定 lan 資源 ack 服務註冊 快速開發 大量 靜態 比較

剛剛開通博客,因為最近在進行各種面試,遇到各種面試問題,用這個機會整理幾篇文章方便日後需要

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 面試相關點