隨着動態語言的流行 (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 領域最熱門的技術。
優勢
缺點