当前位置: 首页 > news >正文

Spring, Spring Boot 和Spring MVC的关系以及区别

一、Spring

简单来说, Spring 是一个开发应用框架,主打轻量级、一站式、模块化,其目的是用于简化企业级应用程序开发。
Spring 的主要功能:管理对象,以及对象之间的依赖关系,面向切面编程,数据库事务管理, 数据访问,web框架支持等。
但是 Spring 具备高度可开放性,并不强制依赖 Spring,开发者可以自由选择 Spring 的部分或者全部,Spring 可以无缝继承第三方框架,比如数据访问框架 ( Hibernate 、JPA ),web框架 (Struts、 JSF)。

二、Spring Boot 

Spring MVC 是 Spring 的一个子框架,Spring诞生之后,大家觉得很好用,于是按照 MVC 模式设计了一个 MVC 框架 ( 一些用Spring 解耦的组件),主要用于开发WEB应用和网络接口,所以,Spring MVC 是一个Web框架。
Spring MVC 基于 Spring 进行开发的,天生的与 Spring 框架集成,可以让我们更简洁的进行Web层开发, 支持灵活的 URL 到页面控制器的映射,提供了强大的约定大于配置的契约式编程支持, 非常容易与其他视图框架集成,如  Velocity、FreeMarker 等。

三、Spring MVC

Spring Boot 是对 Spring 的一个封装,为了简化 Spring 应用的开发而出现的,中小型企业,没有成本研究自己的框架,使用 Spring Boot 可以更加快速的搭建框架,降级开发成本,让开发人员更加专注于 Spring 应用的开发,而无需过多关注XML的配置和一些底层的实现。
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 的一套快速开发整合包。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C语言学习笔记
  • 耳机、音响UWB传输数据模组,飞睿智能低延迟、高速率超宽带uwb模块技术音频应用
  • Golang高效合并(拼接)多个gzip压缩文件
  • MongoDB教程(二十一):MongoDB大文件存储GridFS
  • 安全产品在防御勒索病毒中的作用
  • windows使用ssh-agent管理私钥
  • 23.jdk源码阅读之Thread(下)
  • Scala学习笔记20: Future 和Promise
  • 【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第三篇 嵌入式Linux驱动开发篇-第三十八章 驱动模块编译进内核
  • 【BUG】已解决:The above exception was the direct cause of the following exception:
  • C#知识|账号管理系统:修改登录密码界面的UI设计
  • 一下午连续故障两次,谁把我们接口堵死了?!
  • 【通信模块】LoraWAN网络简介
  • 打造一篇完美的【数学建模竞赛论文】:从准备到撰写的全面指南
  • 免费通配符/泛域名SSL证书快速申请攻略
  • 「面试题」如何实现一个圣杯布局?
  • 【EOS】Cleos基础
  • 【个人向】《HTTP图解》阅后小结
  • Angular 4.x 动态创建组件
  • CentOS7简单部署NFS
  • co.js - 让异步代码同步化
  • DataBase in Android
  • DOM的那些事
  • es6--symbol
  • IndexedDB
  • JavaScript标准库系列——Math对象和Date对象(二)
  • Java多线程(4):使用线程池执行定时任务
  • QQ浏览器x5内核的兼容性问题
  • SpiderData 2019年2月13日 DApp数据排行榜
  • 爱情 北京女病人
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 关于Flux,Vuex,Redux的思考
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 深度解析利用ES6进行Promise封装总结
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 微服务核心架构梳理
  • 一起参Ember.js讨论、问答社区。
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​油烟净化器电源安全,保障健康餐饮生活
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (备忘)Java Map 遍历
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (六)Hibernate的二级缓存
  • (四)Android布局类型(线性布局LinearLayout)
  • (转)shell中括号的特殊用法 linux if多条件判断
  • (转)VC++中ondraw在什么时候调用的
  • (转)详解PHP处理密码的几种方式
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • *算法训练(leetcode)第四十五天 | 101. 孤岛的总面积、102. 沉没孤岛、103. 水流问题、104. 建造最大岛屿
  • .NET Framework 3.5安装教程
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端