专栏首页程序大视界Spring、SpringMVC和SpringBoot看这一篇就够了!

Spring、SpringMVC和SpringBoot看这一篇就够了!

一、概念

1、Spring

Spring是一个开源容器框架,可以接管web层,业务层,dao层,持久层的组件,并且可以配置各种bean,和维护bean与bean之间的关系。其核心就是控制反转(IOC),和面向切面(AOP),简单的说就是一个分层的轻量级开源框架。

2、SpringMVC

SpringMVC属于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等。如下图:

简化的理解图:

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, Jetty Undertow 而且不需要部署他们。
  3. 提供的“starters” poms来简化Maven配置
  4. 尽可能自动配置spring应用。
  5. 提供生产指标,健壮检查和外部化配置
  6. 绝对没有代码生成和XML配置要求。

组成和结构如下图:

从图中可以看出SpringBoot是包含了Spring的核心(IOC)和(AOP);以及封装了一些扩展,如Stater:

三、区别与总结

1.简单理解为:Spring包含了SpringMVC,而SpringBoot又包含了Spring或者说是在Spring的基础上做得一个扩展。

2、关系大概就是这样

spring mvc < spring < springboot

3、Spring Boot 对比Spring的一些优点包括

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

3、结论

SpringBoot只是Spring本身的扩展,使开发,测试和部署更加方便。

本文分享自微信公众号 - 程序大视界(nick_coding1024),作者:刘文正

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-04-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 10分钟看懂SpringCloud微服务

    传统的单体式架构系统,SSH、SSM等MVC模式架构;大家都很熟悉了。也是逐渐被淘汰的一些陈旧的技术了,这类系统的共通点是:整个系统打包成一个应用程序,测试部署...

    刘文正
  • SpringCloud与Dubbo的比较

    Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的RPC实现服务的输出和输入功能,可以和Spring框架无缝集成。

    刘文正
  • 谈谈分布式事务TCC机制

    分布式事务是几乎所有分布式微服务系统中,最棘手也是最重要的一个点了。在讲解分布式事务前,先了解下数据库事务的特性;数据库事务的几个特性:原子性(Atomicit...

    刘文正
  • 深入浅出,Spring 框架和 Spring Boot 的故事

    Spring 框架可以说是 Java 开发人员使用的最流行的应用程序开发框架之一。它目前由大量提供一系列服务的模块组成。包括模块容器,为构建横切关注点提供支持的...

    芋道源码
  • [译]2020年Spring状态报告

    近日VMware发布了2020年Spring状态报告,该报告调查了1000多位不同行业的springboot开发者、架构师、技术经理,以了解企业当前如何使用Sp...

    东溪陈姓少年
  • Spring实战(第4版)

    第4版针对Spring 4进行了全面更新。全书分为四部分。第1部分介绍Spring框架的核心知识。第二部分在此基础上介绍了如何使用Spring构建Web应用程序...

    用户3157710
  • 为什么说 Java 程序员必须掌握 Spring Boot ?

    Spring Boot 对测试的支持不可谓不强大,Spring Boot 内置了7种强大的测试框架:

    美的让人心动
  • 从零学习Spring(一)

    今天我们便踏上Spring框架的学习之路,熟悉此公众号的读者知道,公众号正在连载关于MyBatis,Spring MVC,Spring Boot框架的教程。如果...

    用户1093975
  • Spring,Spring MVC及Spring Boot区别

    我们说到Spring,一般指代的是Spring Framework,它是一个开源的应用程序框架,提供了一个简易的开发方式,通过这种开发方式,将避免那些可能致使代...

    用户7286770
  • 面试中问的话题Spring工作原理

    Spring工作原理 内部最核心的就是IOC了, 动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射 反射其实就是在...

    哲洛不闹

扫码关注云+社区

领取腾讯云代金券