spring-boot入門需要了解的知識
1. 什麼是springboot
Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架使用了特定的方式來進行配置,從而使開發人員不再需要定義樣板化的配置。通過這種方式,Spring Boot致力於在蓬勃發展的快速應用開發領域(rapid application development)成為領導者。
spring大家都知道,boot是啟動的意思。所以,spring boot其實就是一個啟動spring專案的一個工具而已。從最根本上來講,Spring Boot就是一些庫的集合,它能夠被任意專案的構建系統所使用。
2. 為什麼會出現
以前在寫spring專案的時候,要配置各種xml檔案,還記得曾經被ssh框架支配的恐懼。隨著spring3,spring4的相繼推出,約定大於配置逐漸成為了開發者的共識,大家也漸漸的從寫xml轉為寫各種註解,在spring4的專案裡,你甚至可以一行xml都不寫。
雖然spring4已經可以做到無xml,但寫一個大專案需要茫茫多的包,maven配置要寫幾百行,也是一件很可怕的事。
現在,快速開發一個網站的平臺層出不窮,nodejs,php等虎視眈眈,並且指令碼語言漸漸流行了起來(Node JS,Ruby,Groovy,Scala等),spring的開發模式越來越顯得笨重。
在這種環境下,spring boot伴隨著spring4一起出現了。
3. 可以做什麼
那麼,spring boot可以做什麼呢?
spring boot並不是一個全新的框架,它不是spring解決方案的一個替代品,而是spring的一個封裝。所以,你以前可以用spring做的事情,現在用spring boot都可以做。
現在流行微服務與分散式系統,springboot就是一個非常好的微服務開發框架,你可以使用它快速的搭建起一個系統。同時,你也可以使用spring cloud(Spring Cloud是一個基於Spring Boot實現的雲應用開發工具)來搭建一個分散式的網站。
4. 優點
4.1 使編碼變得簡單
spring boot採用java config的方式,對spring進行配置,並且提供了大量的註解,極大地提高了工作效率。
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的一些技術及應用,每週至少兩篇,歡迎關注。同時,由於我也是一個初學者,文章中難免有一些不正確的地方,希望各位批評指正,共同進步。