前言

Spring 框架就像一个家族,有众多衍生产品例如 boot、security、jpa等等。但他们的基础都是Spring 的 ioc和 aop ioc 提供了依赖注入的容器 aop ,解决了面向横切面的编程,然后在此两者的基础上实现了其他延伸产品的高级功能。

Spring MVC是基于 Servlet 的一个 MVC 框架 主要解决 WEB 开发的问题,因为 Spring 的配置非常复杂,各种XML、 JavaConfig、hin处理起来比较繁琐。于是为了简化开发者的使用,从而创造性地推出了Spring boot,约定优于配置,简化了spring的配置流程。

说得更简便一些:Spring 最初利用“工厂模式”(DI)和“代理模式”(AOP)解耦应用组件。大家觉得挺好用,于是按照这种模式搞了一个 MVC框架(一些用Spring 解耦的组件),用开发 web 应用( SpringMVC )。然后有发现每次开发都写很多样板代码,为了简化工作流程,于是开发出了一些“懒人整合包”(starter),这套就是 Spring Boot。

Spring MVC的功能

Spring MVC提供了一种轻度耦合的方式来开发web应用。

Spring MVC是Spring的一个模块,式一个web框架。通过Dispatcher Servlet, ModelAndView 和 View Resolver,开发web应用变得很容易。解决的问题领域是网站应用程序或者服务开发——URL路由、Session、模板引擎、静态Web资源等等。

Spring Boot的功能

Spring Boot实现了自动配置,降低了项目搭建的复杂度。

众所周知Spring框架需要进行大量的配置,Spring Boot引入自动配置的概念,让项目设置变得很容易。Spring Boot本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。

也就是说,它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具。同时它集成了大量常用的第三方库配置(例如Jackson, JDBC, Mongo, Redis, Mail等等),Spring Boot应用中这些第三方库几乎可以零配置的开箱即用(out-of-the-box),大部分的Spring Boot应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑。

Spring Boot只是承载者,辅助你简化项目搭建过程的。如果承载的是WEB项目,使用Spring MVC作为MVC框架,那么工作流程和你上面描述的是完全一样的,因为这部分工作是Spring MVC做的而不是Spring Boot。

对使用者来说,换用Spring Boot以后,项目初始化方法变了,配置文件变了,另外就是不需要单独安装Tomcat这类容器服务器了,maven打出jar包直接跑起来就是个网站,但你最核心的业务逻辑实现与业务流程实现没有任何变化。

所以,用最简练的语言概括就是:

Spring 是一个“引擎”;

Spring MVC 是基于Spring的一个 MVC 框架 ;

Spring Boot 是基于Spring4的条件注册的一套快速开发整合包。

最新文章

  1. Sql With as 用法
  2. 用 FragmentManager 替换时使用 GoogleMaps 崩溃 app
  3. 怎样打开64位 Ubuntu 的32位支持功能?
  4. laravel数据库查询是use方法的使用
  5. html 鼠标移入标签 显示小手指
  6. Windows代码页、区域
  7. Symfony2学习笔记之HTTP Cache
  8. System.Windows.Forms.Timer反编译学习
  9. HDU 4588 Count The Carries 计算二进制进位总数
  10. sql2000数据库误删除后自行恢复二次覆盖成功恢复
  11. 一个基于EntityFramework Core的简单数据库访问层,适用于轻量级数据库业务
  12. Python 脚本实现对 Linux 服务器的监控
  13. android 加载图片oom若干方案小结
  14. Elasticsearch与Hadoop集成大数据处理介绍
  15. easyui textbox 输入小写自动变大写,easyui textbox 绑定oninput事件 easyui textbox 绑定propertychange事件
  16. docker+gitlab的安装和迁移
  17. Creator仿超级玛丽小游戏源码分享
  18. Spring学习整理
  19. spring boot 实现密码连续输入错误5次,限制十分钟内不能进行登录
  20. python之OrderedDict类

热门文章

  1. LeetCode双周赛#35
  2. C语言讲义——链表完整代码
  3. Mybatis学习-初步认知与使用
  4. JZOJ8月8日提高组反思
  5. flask:蓝图--blueprint
  6. PyQt(Python+Qt)学习随笔:QDial刻度盘部件功能简介
  7. PyQt(Python+Qt)学习随笔:QTreeView树形视图的sortingEnabled属性
  8. 基础篇——怎么使用PowerDesigner进行数据库初始化
  9. 《Machine Learning in Action》—— Taoye给你讲讲Logistic回归是咋回事
  10. linux替换项目jar包