Spring的主要功能:管理对象,以及对象之间的依赖关系,面向切面编程,数据库事务管理,数据访问,web框架支持等。
但是Spring具备高度可开放性,并不强制依赖Spring,开发者可以自由选择Spring的部分或者全部,Spring可以无缝继承第三方框架,比如数据访问框架(Hibernate、JPA),web框架(如Struts、JSF)等等。
Spring MVC基于Spring进行开发的,天生的与Spring框架集成,可以让我们更简洁的进行Web层开发,支持灵活的URL到页面控制器的映射,提供了强大的约定大于配置的契约式编程支持,非常容易与其他视图框架集成,如Velocity、FreeMarker等。
Spring Boot是个脚手架,插拔式搭建项目,可以快速的集成其他框架进来。
比如想使用SpringBoot开发Web项目,只需要引入Spring MVC框架即可,Web开发的工作是SpringMVC完成的,而不是SpringBoot,想完成数据访问,只需要引入Mybatis框架即可。
Spring Boot只是辅助简化项目开发的,让开发变得更加简单,甚至不需要额外的web服务器,直接生成jar包执行即可。
最后一句话总结:Spring MVC和Spring Boot都属于Spring, Spring MVC是基于Spring的一个MVC 框架,而Spring Boot是基于Spring的一套快速开发整合包。
示例:

示例中:整体的框架是SpringBoot提供搭建的;IoC & DI 功能是Spring 提供的;Web相关功能是Spring MVC 提供的。
这三者专注的领域不同,解决的问题也不一样,总的来说,Spring就像⼀个大家族,有众多衍生产品,但他们的基础都是Spring,用一张图来表示他们三个的关系:
