随着动态语言的流行 (Ruby、Groovy、Scala、Node.js),Java 的开发显得格外的笨重:繁多的配置、低下的开发效率、复杂的部署流程以及第三方技术集成难度大。java
在上述环境下,Spring Boot 应运而生。它使用“习惯优于配置”(项目中存在大量的配置,此外还内置了一个习惯性的配置,让你无需手动进行配置)的理念让你的项目快速的运行起来。使用 Spring Boot 很容易建立一个独立运行(运行 Jar,内嵌 Servlet 容器)准生产级别的基于 Spring 框架的项目,使用 Spring Boot 你能够不用或者只需不多的 Spring 配置。web
Spring是为了解决企业级应用开发的复杂性而建立的,简化开发。spring
为了下降Java开发的复杂性,Spring采用了如下4种关键策略:编程
一、基于POJO的轻量级和最小侵入性编程;springboot
二、经过IOC,依赖注入(DI)和面向接口实现松耦合;框架
三、基于切面(AOP)和惯例进行声明式编程;maven
四、经过切面和模版减小样式代码;工具
学过javaweb的同窗就知道,开发一个web应用,从最初开始接触Servlet结合Tomcat, 跑出一个Hello Wolrld程序,是要经历特别多的步骤; 后来就用了框架Struts,再后来是SpringMVC,到了如今的SpringBoot,过一两年又会有其余web框架出现;不知道大家有没经历过框架不断的演进,而后本身开发项目全部的技术也再不断的变化、改造,反正我是都经历过了,哈哈。云计算
言归正传,什么是SpringBoot呢,就是一个javaweb的开发框架,和SpringMVC相似,对比其余javaweb框架的好处,官方说是简化开发,约定大于配置, you can "just run",能迅速的开发web应用,几行代码开发一个http接口。设计
全部的技术框架的发展彷佛都遵循了一条主线规律:从一个复杂应用场景 衍生 一种规范框架,人们只须要进行各类配置而不须要本身去实现它,这时候强大的配置功能成了优势;发展到必定程度以后,人们根据实际生产应用状况,选取其中实用功能和设计精华,重构出一些轻量级的框架;以后为了提升开发效率,嫌弃原先的各种配置过于麻烦,因而开始提倡“约定大于配置”,进而衍生出一些一站式的解决方案。
是的这就是Java企业级应用->J2EE->spring->springboot的过程。
随着 Spring 不断的发展,涉及的领域愈来愈多,项目整合开发须要配合各类各样的文件,慢慢变得不那么易用简单,违背了最初的理念,甚至人称配置地狱。Spring Boot 正是在这样的一个背景下被抽象出来的开发框架,目的为了让你们更容易的使用 Spring 、更容易的集成各类经常使用的中间件、开源软件;
Spring Boot 基于 Spring 开发,Spirng Boot 自己并不提供 Spring 框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于 Spring 框架的应用程序。也就是说,它并非用来替代 Spring 的解决方案,而是和 Spring 框架紧密结合用于提高 Spring 开发者体验的工具。Spring Boot 以约定大于配置的核心思想,默认帮咱们进行了不少设置,多数 Spring Boot 应用只须要不多的 Spring 配置。同时它集成了大量经常使用的第三方库配置(例如 Redis、MongoDB、Jpa、RabbitMQ、Quartz 等等),Spring Boot 应用中这些第三方库几乎能够零配置的开箱即用,
简单来讲就是SpringBoot其实不是什么新的框架,它默认配置了不少框架的使用方式,就像maven整合了全部的jar包,spring boot整合了全部的框架 。
Spring Boot 出生名门,从一开始就站在一个比较高的起点,又通过这几年的发展,生态足够完善,Spring Boot 已经当之无愧成为 Java 领域最热门的技术。
优势
缺点