現(xiàn)在 Spring Boot 非常火暇仲,各種技術(shù)文章步做,各種付費教程,多如牛毛奈附,可能還有些不知道 Spring Boot 的全度,那它到底是什么呢?有什么用斥滤?今天給大家詳細介紹一下将鸵。
Spring Boot 的背景
了解 Spring Boot 必須先說說 Spring 框架勉盅!
在 Java 后端框架繁榮的今天,Spring 框架無疑是最最火熱顶掉,也是必不可少的開源框架草娜,更是穩(wěn)坐 Java 后端框架的龍頭老大。
用過 Spring 框架的都知道 Spring 能流行是因為它的兩把利器:IOC 和 AOP痒筒,IOC 可以幫助我們管理對象的依賴關(guān)系宰闰,極大減少對象的耦合性,而 AOP 的切面編程功能可以更方面的使用動態(tài)代理來實現(xiàn)各種動態(tài)方法功能(如事務(wù)簿透、緩存移袍、日志等)。
而要集成 Spring 框架老充,必須要用到 XML 配置文件咐容,或者注解式的 Java 代碼配置。無論是使用 XML 或者代碼配置方式蚂维,都需要對相關(guān)組件的配置有足夠的了解戳粒,然后再編寫大量冗長的配置代碼。
然后又有多少開發(fā)人員能精通這些配置呢虫啥?如果我們只提供一些配置參數(shù)讓框架能自動配置這些組件蔚约,那是不是 so easy?
基于簡化 Spring 快速上手為目的,Spring Boot 框架誕生了涂籽!
什么是 Spring Boot?
Spring Boot是 Spring 開源組織下的一個子項目苹祟,也是 Spring 組件一站式解決方案,主要是為了簡化使用 Spring 框架的難度评雌,簡省繁重的配置树枫。
Spring Boot提供了各種組件的啟動器(starters),開發(fā)者只要能配置好對應(yīng)組件參數(shù)景东,Spring Boot 就會自動配置砂轻,讓開發(fā)者能快速搭建依賴于 Spring 組件的 Java 項目。
Spring Boot不但能創(chuàng)建傳統(tǒng)的 war 包應(yīng)用斤吐,還能創(chuàng)建獨立的不依賴于任何外部容器(如:tomcat)的獨立應(yīng)用搔涝,使用java -jar命令就能啟動。同時和措,Spring Boot也提供了一個命令行工具來執(zhí)行 Spring 的腳本庄呈。
Spring Boot 的官方網(wǎng)站:
https://projects.spring.io/spring-boot/
Spring Boot 的源碼:
https://github.com/spring-projects/spring-boot
Spring Boot 的設(shè)計目標
如果你不清楚 Spring 是干嘛用的,那再來看看設(shè)計它的目標和初衷是什么派阱!
為 Spring 應(yīng)用開發(fā)提供一個更快诬留、更容易上手的入門體驗;
提供一系列在大型項目中經(jīng)常用到的公共的非功能性特性,如:內(nèi)嵌入服務(wù)器文兑、安全傀广、度量指標、健康檢測彩届、外部化配置伪冰;
零代碼配置生成及零 XML 配置;
Spring Boot 為什么能這么火樟蠕?
Spring Boot 為什么能這么火贮聂?是因為它有以下幾個特色。
1寨辩、獨立運行
Spring Boot內(nèi)嵌了各種 Servlet 容器吓懈,Tomcat、Jetty等靡狞,現(xiàn)在不再需要打成 war 包部署到容器中耻警,Spring Boot 只要打成一個可執(zhí)行的jar包就能獨立運行,所有的依賴包都在一個 jar 包內(nèi)甸怕。
2甘穿、簡化 Maven 配置
現(xiàn)在只要依賴spring-boot-starter-web啟動器包,它包含所有 web 開發(fā)所有的依賴梢杭,就能擁有 Spring Web 的能力温兼,極大簡少了 maven 對依賴的配置。
3武契、自動配置
Spring Boot能根據(jù)當前類路徑下的類或者 jar 包里面來的類來自動配置 Spring Bean募判,如添加一個spring-boot-starter-web啟動器就能擁有 web 的功能,無需其他配置咒唆。也可以在配置文件中添加相關(guān)配置來自定義裝配届垫,這個后面的課程會講到,請關(guān)注后續(xù)內(nèi)容全释。
4装处、無代碼生成和XML配置
Spring Boot配置過程中無代碼生成,也無需XML配置文件就能完成所有配置工作恨溜,這一切都是借助于條件注解完成的符衔,這也是 Spring 4+ 的核心功能之一近哟。
5迫肖、應(yīng)用監(jiān)控
Spring Boot提供一系列端點可以監(jiān)控服務(wù)及應(yīng)用辜窑,能對Spring 應(yīng)用做健康檢測。
Spring Boot 的缺點
說了這么多 Spring Boot 的優(yōu)點和特色项戴,雖然上手很容易,但也不是沒有缺點槽惫。任何框架都有其優(yōu)缺點周叮,Spring Boot 也不例外辩撑,我大概可以總結(jié)有以下幾個缺點。
1仿耽、需要非常了解 Spring Boot 的核心技術(shù)原理合冀,不然一旦遇到問題就很棘手。因為什么東西都集成了项贺,自動配置化君躺。這樣,需要對配置信息非常熟悉开缎,要找起問題來不是很容易棕叫。
2、從原始 Spring 項目很難平滑遷移至 Spring Boot 框架上來奕删,因為有些歷史老舊的 XML 配置無法通過 Java 來配置俺泣,還需要額外的 XML 文件就不是很完美。再比如完残,之前是獨立的 Tomcat伏钠,什么參數(shù)都在線上配置好了,你改為內(nèi)置的 Tomcat 就會遇到很多問題谨设。
相對于優(yōu)點來說贝润,這些缺點也都不算什么÷料總之打掘,Spring Boot 是值得我們?nèi)魏我粋€ Java 開發(fā)者嘗試摸索的。