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。


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等。

如下图:
在这里插入图片描述
简化的理解图:
在这里插入图片描述
2、SpringMVC的原理和组成

SpringMVC是属于SpringWeb里面的一个功能模块(SpringWebMVC),专门用来开发SpringWeb项目的一种MVC模式的技术框架实现。


其原理如下:
在这里插入图片描述
MVC:Model(模型)、VIew(视图)、Controller(控制器);我们从开始接触并学习javaWeb开发就知道MVC这一种架构,如早起的Sturts1、Sturts2等。

3、SpringBoot的原理和特性

Spring Boot基本上是Spring框架的扩展,它消除了Spring应用开发所需的XML配置,从而更快,更高效的开发。

Spring Boot中的一些特点:

  1. 创建独立的spring应用。
  2. 内嵌Tomcat, JettyUndertow 不需要部署。
  3. 提供的“starters” poms来简化Maven配置。
  4. 尽可能自动配置spring应用。
  5. 绝对没有代码生成和XML配置要求。

组成和结构如下图:
在这里插入图片描述
从图中可以看出SpringBoot是包含了Spring的核心(IOC)和(AOP);以及封装了一些扩展,如Stater:
在这里插入图片描述


三、区别与总结

1. Spring包含了SpringMVC,而SpringBoot是在Spring的基础上做得一个扩展。

在这里插入图片描述
2、关系大概:

spring mvc < spring < springboot

3、Spring Boot 对比Spring的一些优点:

  1. 提供嵌入式容器支持
  2. 使用命令java -jar独立运行jar
  3. 在外部容器中部署时,可以选择排除依赖关系以避免潜在的jar冲突
  4. 部署时灵活指定配置文件的选项
  5. 用于集成测试的随机端口生成

4、结论

Spring Boot只是Spring本身的扩展,使开发更加方便


感谢大家的耐心阅读,如有建议请私信或评论留言

你可能感兴趣的:(spring,spring,boot,java)