分別描述各自的特征:
Spring 框架就像一個家族,有眾多衍生產品例如 boot、security、jpa等等;但他們的基礎都是Spring 的ioc和 aop,ioc 提供了依賴注入的容器, aop解決了面向切面編程,然后在此兩者的基礎上實現了其他延伸產品的高級功能。
Spring MVC提供了一種輕度耦合的方式來開發web應用;它是Spring的一個模塊,是一個web框架;通過DispatcherServlet, ModelAndView 和 View Resolver,開發web應用變得很容易;解決的問題領域是網站應用程序或者服務開發——URL路由、Session、模板引擎、靜態Web資源等等。
Spring Boot實現了auto-configuration自動配置(另外三大神器actuator監控,cli命令行接口,starter依賴),降低了項目搭建的復雜度。它主要是為了解決使用Spring框架需要進行大量的配置太麻煩的問題,所以它並不是用來替代Spring的解決方案,而是和Spring框架緊密結合用於提升Spring開發者體驗的工具;同時它集成了大量常用的第三方庫配置(例如Jackson, JDBC, Mongo, Redis, Mail等等),Spring Boot應用中這些第三方庫幾乎可以零配置的開箱即用(out-of-the-box)。
所以,用最簡練的語言概括就是:
Spring 是一個“引擎”;
Spring MVC 是基於Spring的一個 MVC 框架;
Spring Boot 是基於Spring4的條件注冊的一套快速開發整合包。