1. 什麼是springboot
Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員再也不須要定義樣板化的配置。經過這種方式,Spring Boot致力於在蓬勃發展的快速應用開發領域(rapid application development)成爲領導者。php
spring你們都知道,boot是啓動的意思。因此,spring boot其實就是一個啓動spring項目的一個工具而已。從最根本上來說,Spring Boot就是一些庫的集合,它可以被任意項目的構建系統所使用。java
2. 爲何會出現
之前在寫spring項目的時候,要配置各類xml文件,還記得曾經被ssh框架支配的恐懼。隨着spring3,spring4的相繼推出,約定大於配置逐漸成爲了開發者的共識,你們也漸漸的從寫xml轉爲寫各類註解,在spring4的項目裏,你甚至能夠一行xml都不寫。node
雖然spring4已經能夠作到無xml,但寫一個大項目須要茫茫多的包,maven配置要寫幾百行,也是一件很可怕的事。spring
如今,快速開發一個網站的平臺層出不窮,nodejs,php等虎視眈眈,而且腳本語言漸漸流行了起來(Node JS,Ruby,Groovy,Scala等),spring的開發模式愈來愈顯得笨重。數據庫
在這種環境下,spring boot伴隨着spring4一塊兒出現了。小程序
3. 能夠作什麼
那麼,spring boot能夠作什麼呢?api
spring boot並非一個全新的框架,它不是spring解決方案的一個替代品,而是spring的一個封裝。因此,你之前能夠用spring作的事情,如今用spring boot均可以作。tomcat
如今流行微服務與分佈式系統,springboot就是一個很是好的微服務開發框架,你可使用它快速的搭建起一個系統。同時,你也可使用spring cloud(Spring Cloud是一個基於Spring Boot實現的雲應用開發工具)來搭建一個分佈式的網站。springboot
4. 優勢
4.1 使編碼變得簡單
spring boot採用java config的方式,對spring進行配置,而且提供了大量的註解,極大地提升了工做效率。restful
4.2 使配置變得簡單
spring boot提供許多默認配置,固然也提供自定義配置。可是全部spring boot的項目都只有一個配置文件:application.properties/application.yml。用了spring boot,不再用擔憂配置出錯找不到問題所在了。
4.3 使部署變得簡單
spring boot內置了三種servlet容器:tomcat,jetty,undertow。
因此,你只須要一個java的運行環境就能夠跑spring boot的項目了。spring boot的項目能夠打成一個jar包,而後經過java -jar xxx.jar
來運行。(spring boot項目的入口是一個main方法,運行該方法便可。 )
4.4 使監控變得簡單
spring boot提供了actuator包,可使用它來對你的應用進行監控。它主要提供瞭如下功能:
咱們將在後續文章中學習它。
5. 相關技術
5.1 微服務架構
微服務是一種架構風格,一個大型複雜軟件應用由一個或多個微服務組成。系統中的各個微服務可被獨立部署,各個微服務之間是鬆耦合的。每一個微服務僅關注於完成一件任務並很好地完成該任務。在全部狀況下,每一個任務表明着一個小的業務能力。
好比我要開發一個購票系統。就能夠簡單的拆分爲用戶管理微服務和售票系統微服務。兩個服務均可以獨立運行,都有本身的數據庫,他們之間經過restapi 進行通訊。
而spring boot就是搭建微服務的一個很好的選擇。
5.2 restful
restful 是一種api的風格,後面的文章裏,會着重講解。spring boot能夠很方便的提供restful 風格的api。
5.3 spring cloud
微服務有不少優勢,固然也有一些挑戰。能夠參考這篇文章:
微服務實戰(一):微服務架構的優點與不足。
微服務通常都是運行在分佈式環境中的,這可不是簡單的寫一個ssm框架的小程序就能夠解決的,其中須要用到不少技術,好比負載均衡,反向代理,服務治理,配置管理,消息總線等,spring cloud提供了這些技術。而且,spring cloud全家桶是基於spring boot的。
以後會專門開一個spring cloud的專題。
6. 總結
來總結一下spring boot的特色。
獨立運行的Spring項目
Spring Boot能夠以jar包的形式進行獨立的運行,使用:java -jar xx.jar 就能夠成功的運行項目,或者在應用項目的主程序中運行main函數便可;
內嵌的Servlet容器
咱們上面已經講過。
提供starter簡化Manen配置
spring boot提供各類starter,其實就是一些spring bao的集合,只不過spring boot幫咱們整合起來了而已。
上圖只是其中的一部分,還有不少其餘的。經過這些starter也能夠看得出來,spring boot能夠和其餘主流的框架無縫集成,好比mybatis等。因此,你不須要擔憂你想用的技術spring boot不支持。
自動配置Spring,無xml文件
Spring Boot會根據咱們項目中類路徑的jar包/類,爲jar包的類進行自動配置Bean,這樣一來就大大的簡化了咱們的配置。固然,這只是Spring考慮到的大多數的使用場景,在一些特殊狀況,咱們還須要自定義自動配置(就在那惟一的配置文件裏,並且它不是xml文件!)。
應用監控
Spring Boot提供了基於http、ssh、telnet對運行時的項目進行監控。
springboot 入門篇將會從頭開始,介紹spring boot的一些技術及應用,每週至少兩篇,歡迎關注。同時,因爲我也是一個初學者,文章中不免有一些不正確的地方,但願各位批評指正,共同進步。
文章首發自簡書
spring boot 官網:http://projects.spring.io/spring-boot/
spring boot 中文網:https://springcloud.cc/
參考文章:http://www.csdn.net/article/a/2016-05-12/15838098
*Spring Boot*_百度百科