【springboot 入門篇】第0篇 spring-boot是什麼
作為一個java程式設計師,如果你還不知道springboot,那你一定是落後了。
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的一些技術及應用,每週至少兩篇,歡迎關注。同時,由於我也是一個初學者,文章中難免有一些不正確的地方,希望各位批評指正,共同進步。
文章首發自簡書
相關推薦
【springboot 入門篇】第0篇 spring-boot是什麼
作為一個java程式設計師,如果你還不知道springboot,那你一定是落後了。 1. 什麼是springboot Spring Boot是由Pivotal團隊提供的全新框架,其設計目的是用來簡化新Spring應用的初始搭建以及開發過程。該框架
【OpenCV入門指南】第四篇 影象的二值化
【OpenCV入門指南】第四篇 影象的二值化 在上一篇《【OpenCV入門指南】第三篇Canny邊緣檢測》中介紹了使用Canny運算元對影象進行邊緣檢測。與邊緣檢測相比,輪廓檢測有時能更好的反映影象的內容。而要對影象進行輪廓檢測,則必須要先對影象進行二值化,影象的二值化就是
【OpenCV入門指南】第八篇 灰度直方圖
直方圖(Histogram)又稱柱狀圖、質量分佈圖,是一種統計報告圖。直方圖由一系列高度不等的縱向條紋或線段表示資料分佈的情況。一般用橫軸表示資料型別,縱軸表示分佈情況。在影象處理上,直方圖是影象資訊統計的有力工具。 灰度直方圖是指對影象的灰度資訊進行統計,我們知道灰度圖
【springboot 入門篇】第1篇 第一個spring-boot程式(多種搭建方式)
學習一個新技術,先別管他的原理啊,流程啊,怎麼組織程式碼啊什麼的。直接從官網或者部落格抄一個小demo,自己親自跑一遍,然後再去看那一堆讓人頭皮發麻的講解,就能相對容易的看懂了。 初學者的態度應該是:不要問我為什麼,反正我就是可以這樣執行! 1. 建立一個spring boot專案可以使用
SpringBoot入門系列:第三篇 日誌輸出
Java程式,日誌輸出,我認為是第一位的,把它的應用拿到這裡。 Spring-Boot對日誌的處理,和我們往常的處理完全可以一致,通過logback.xml進行處理,即使有更先進的東西,我們也不用去管它。 這裡,為了簡便,我們任然使用前一篇的工程spring-boot-sa
【屌絲程式的口才逆襲演講稿50篇】第十篇:程式設計師們請看看外面的世界吧【張振華.Jack】
演講稿主題:《程式設計師們請看看外面的世界吧》 --作者:張振華Jack 大家都知道我是一個程式設計師,幾年下來認識了最典型的三個程式設計師。
【屌絲程式的口才逆襲演講稿50篇】第六篇:兩個年輕人掙錢的故事 【張振華.Jack】
騏驥一躍,不能十步。駑馬十駕,功在不捨。讓我們一起來見證堅持的力量。不知道自己能堅持多久,但我相信堅持就是力量。Java高階交流群:240619787; 演講稿主題:《兩個年輕人掙錢的故事》
SpringBoot入門系列:第七篇 Spring Boot的測試
Spring Boot的測試,和普通專案的測試類同,可以繼續使用我們熟悉的測試工具。當然,這裡的測試,主要還是後臺程式碼的測試。 主要需要注意的地方僅有三點: 1、依賴包的引入:pom.xml中僅依賴spring-boot-starter-test,它把相關的依賴全部引入。 2、在測試類上的註解,常
SpringBoot入門系列:第四篇 redis
一,準備工作,建立spring-boot-sample-redis工程 1、http://start.spring.io/ A、Artifact中輸入spring-boot-sample-redis B、勾選Web下的web C、勾選NOSQL
SpringBoot入門系列:第五篇 JPA mysql
一,準備工作,建立spring-boot-sample-mysql工程 1、http://start.spring.io/ A、Artifact中輸入spring-boot-sample-mysql B、勾選Web下的web C、勾選SQL下
【WLAN從入門到精通-基礎篇】第7期——AP上線過程
【轉自】http://support.huawei.com/huaweiconnect/enterprise/thread-218201.html 話說AP家有兄弟倆,哥哥胖AP(FAT AP)身強體健,單打獨鬥,無人能出其右,弟弟瘦AP(FIT AP)天生體質薄弱,獨自
【WLAN從入門到精通-基礎篇】第11期——WLAN接入認證-Portal
【轉自】http://support.huawei.com/huaweiconnect/enterprise/thread-149867.html 1.1 無處不在的Portal認證 場景一:北京國際機場,巖鬆開啟iPhone搜尋Wi-Fi訊號,看到機場Wi-Fi登入
【WLAN從入門到精通-基礎篇】第2期——WLAN射頻和通道
【轉自】http://support.huawei.com/huaweiconnect/enterprise/thread-257291.html 有這樣一個段子“嫁到俺村吧,俺村條件不賴,穿衣基本靠紡,吃飯基本靠黨,致富基本靠搶,娶妻基本靠想,交通基本靠走,通訊基本靠吼
【銅】第124篇 一對一視頻錄制(三)及網站註冊 周四
一對一視頻錄制 網站註冊 關鍵詞:一對一視頻錄制,網站註冊一、一對一視頻錄制1.1 參考網址https://www.webrtc-experiment.com/RecordRTC/視頻錄制下載網址:https://github.com/muaz-khan/RecordRTC1.2 網頁錄制本地:ht
【銅】第134篇 一對一視頻錄制及Ajax實現註冊周日
一對一視頻錄制 ajax實現註冊 關鍵詞:一對一視頻錄制, Ajax實現註冊一、一對一視頻錄制1.1 需要做的二、network2.1 Ajax實現註冊,如下:1)註冊html <h3>註冊請填寫:</h3> 用戶名:<input type
【銅】第135篇 一對一視頻錄制(二)及必填項紅色星標及隱藏index.php及必選項不能為空 周一
一對一視頻錄制 必填項紅色星標 隱藏index.php 必選項不能為空 關鍵詞:一對一視頻錄制, 必填項紅色星標, 隱藏index.php, 必選項不能為空一、一對一視頻錄制1.1 需要做的二、我的網站2.1 必填項紅色星標代碼如下:<spanstyle="color:red;">
【滲透課程】第六篇-上傳漏洞之解析漏洞
文件的 配置文件 密碼 3.1 安裝目錄 ppa xxx 表單 圖片 上傳漏洞,我們為什麽要上傳?因為我們說過。在網站服務器上 肯定有一個Web容器,它裏面裝的就是Web應用程序 。某些腳本具有一定的執行和修改權限。這些權限可以說是服務器給客戶端訪問時提供的服務的同時提供的
【滲透課程】第三篇-體驗http協議的應用
load 簡單介紹 class 發送數據 數據交互 動手實驗 服務端 yun 屬於 之前我們都了解了,訪問網頁時,客戶端與服務端之間的請求與響應數據交互。本篇就淺談它的應用。 利用HTTP攔截突破前段驗證 比方說,我們在某個網頁提交某些數據(例如留言、上傳、插入xss等)
【滲透課程】第七篇-上傳漏洞之繞過上傳漏洞
ng- 相關 都是 http itl 了解 利用 存在 上傳 前一篇我們已經講過了上傳漏洞的解析漏洞,在某些時候,知道網站存在哪個解析漏洞,那麽我們就可以更好的利用上傳漏洞 這個知識點在我們前面就有粗略說過了(http://www.yuntest.org/index.php
【滲透課程】第八篇-上傳漏洞之文本編輯器上傳
fckeditor -m ive conf ima xheditor ger .org 圖片上傳 Oday 常見的文本編輯器有CKEditor,Ewebeditor,UEditor,KindEditor,XHeditor等。其包含的功能類似,比如,圖片上傳、視頻上傳、遠程下