对SpringBoot的简单理解

Spring Boot是一套遵循的约定大于配置的体系,简化了很多组件的使用比如datasouce、JPA、SpringMVC等等,约定好自动化的配置,就可以使用功能。使用的技术还是Spring体系的,Spring mvc在其中也有使用。同时SpringBoot有各种starter,包含了当前功能必须的各种Maven依赖,简化了依赖冲突的管理问题。本质来说就是个常用开发框架整合包,类似与项目开始开发拿到的初始可运行框架。
SpringMVC是一个Spring解决WEB开发问题提供的一个MVC框架,框架的使用配置需要开发人员自行配置,依赖也需要自行引入,只是搭建项目可运行框架的一部分。
开发中,突出的差别体现感觉是在:

  1. 注解和xml配置的使用上,SpringBoot基本可以用注解实现所有功能。
  2. 启动方式变更,以前的大部分都是打包后放在诸如tomcat之类的容器运行,现在SpringBoot内置了容器,通过Applicaiton的main函数可以直接运行。

Spring Boot实现了自动配置,降低了项目搭建的复杂度。它主要是为了解决使用Spring框架需要进行大量的配置太麻烦的问题,所以它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具。同时它集成了大量常用的第三方库配置(例如Jackson, JDBC, Mongo, Redis, Mail等等),Spring Boot应用中这些第三方库几乎可以零配置的开箱即用(out-of-the-box)。

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

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

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

所以,用最简练的语言概括就是:
Spring 是一个“引擎”;
Spring MVC 是基于Spring的一个 MVC 框架;
Spring Boot 是基于Spring4的条件注册的一套快速开发整合包。

你可能感兴趣的:(对SpringBoot的简单理解)