【spring|Spring、SpringMVC和SpringBoot的关系】一、概念
1、Spring
Spring是一个开源容器框架,可以接管web层、业务层、dao层、持久层的组件,并可以配置各种bean,且能维护bean与bean之间的关系。其核心就是控制反转(IOC)和面向切面编程(AOP),简单的说就是一个分层的轻量级开源框架。
2、SpringMVC
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。SpringMVC是一种web层mvc框架,用于替代servlet(处理|响应请求,获取表单参数,表单校验等)。SpringMVC是一个MVC的开源框架,SpringMVC=struts2+spring,即springMVC相当于是Struts2加上Spring的整合。
3、SpringBoot
Springboot是一个微服务框架,延续了spring框架的核心思想IOC和AOP,简化了应用的开发和部署。Spring Boot是为了简化Spring应用的创建、运行、调试、部署等而出现的,使用它可以做到专注于Spring应用的开发,而无需过多关注XML的配置。它提供了一堆依赖打包,并已经按照使用习惯解决了依赖问题。
二、原理和结构
1、Spring的原理和组成
为简化开发工作,Spring框架封装了一系列的开箱即用的组件功能模块,包括:Spring JDBC 、Spring MVC 、Spring Security、 Spring AOP 、Spring ORM 、Spring Test等。Spring框架结构如下图所示:
文章图片
简化的理解图如下所示:
文章图片
2、SpringMVC的原理和组成
从上图中可以看出:SpringMVC是属于SpringWeb里面的一个功能模块(SpringWebMVC)。专门用来开发SpringWeb项目的一种MVC模式的技术框架实现。其原理如下:
文章图片
MVC:Model(模型)、VIew(视图)、Controller(控制器);我们从开始接触并学习javaWeb开发就知道MVC这一种架构,如早起的Sturts1、Sturts2等。
3、SpringBoot的原理和特性
- Spring Boot基本上是Spring框架的扩展,其消除了设置Spring应用程序所需的XML配置,为更快、更高效的开发应用系统铺平了道路。
- Spring Boot中的一些特点
a. 创建独立的spring应用;
b. 嵌入Tomcat, Jetty Undertow 而且不需要部署它们;
c. 提供的 “starters” poms来简化Maven配置;
d. 尽可能自动配置spring应用;
e. 提供生产指标,健壮检查和外部化配置;
f. 没有代码生成和XML配置要求。 - 组成和结构,如下图所示
文章图片
从图中可以看出SpringBoot是包含了Spring的核心(IOC)和(AOP);以及封装了一些扩展,如Stater:
文章图片
- 简单理解为:Spring包含了SpringMVC,而SpringBoot又包含了Spring或者说是在Spring的基础上做得一个扩展。
- 关系大概就是这样:
spring mvc < spring < springboot
- Spring Boot 对比Spring的一些优点包括:
- 提供嵌入式容器支持;
- 使用命令java -jar独立运行jar;
- 在外部容器中部署时,可以选择排除依赖关系以避免潜在的jar冲突;
- 部署时灵活指定配置文件的选项;
- 用于集成测试的随机端口生成。
- 结论
为了便于理解,可以简单看成上述spring mvc < spring < springboot的关系,但是Spring Boot既是对Spring的扩展,使开发、测试和部署更加方便,也增加了SpringBoot本身的一些功能,如:Sarter依赖、main函数启动入口、自动化配置等均使得SpringBoot优于Spring。
推荐阅读
- #|SpringBoot2学习笔记一--Spring与SpringBoot2
- spring|SpringMVC ---- CRUD和文件上传下载
- spring|Spring Boot面试必问(启动流程)
- java|一文弄懂 Spring boot 启动流程
- SpringBoot篇|Spring Boot启动过程
- spring|Spring Boot 启动流程
- Spring|spring boot启动流程
- Spring|Spring Boot的启动流程
- spring小结---AOP源码分析