首頁技術(shù)文章正文

Spring Boot框架都有哪些優(yōu)點(diǎn)和缺點(diǎn)?

更新時(shí)間:2022-11-09 來源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

相較于傳統(tǒng)的Spring框架,Spring Boot 框架具有以下優(yōu)點(diǎn)。

1.可快速構(gòu)建獨(dú)立的 Spring 應(yīng)用

Spring Boot是一個(gè)依靠大量注解實(shí)現(xiàn)自動化配置的全新框架。在構(gòu)建Spring應(yīng)用時(shí),我們只需要添加相應(yīng)的場景依賴,Spring Boot就會根據(jù)添加的場景依賴自動進(jìn)行配置,在無須額外手動添加配置的情況下快速構(gòu)建出一個(gè)獨(dú)立的Spring應(yīng)用。

2.直接嵌入Tomcat、Jetty 和Undertow 服務(wù)器(無須部署WAR文件)

傳統(tǒng)的Spring應(yīng)用部署時(shí),通常會將應(yīng)用打成 WAR包形式并部署到Tomcat、Jetty或Undertow 服務(wù)器中。Spring Boot框架內(nèi)嵌了Tomcat、Jetty和Undertow 服務(wù)器,而且可以自動將項(xiàng)目打包,并在項(xiàng)目運(yùn)行時(shí)部署到服務(wù)器中。

3.通過依賴啟動器簡化構(gòu)建配置

在Spring Boot項(xiàng)目構(gòu)建過程中,無須準(zhǔn)備各種獨(dú)立的JAR文件,只需在構(gòu)建項(xiàng)目時(shí)根據(jù)開發(fā)場景需求選擇對應(yīng)的依賴啟動器“starter”,在引入的依賴啟動器“starter”內(nèi)部已經(jīng)包含了對應(yīng)開發(fā)場景所需的依賴,并會自動下載和拉取相關(guān)JAR包。例如,在Web開發(fā)時(shí),只需在構(gòu)建項(xiàng)目時(shí)選擇對應(yīng)的Web場景依賴啟動器spring-boot-starter-web,Spring Boot項(xiàng)目便會自動導(dǎo)入spring-webmvc、spring-web、spring-boot-starter-tomcat等子依賴,并自動下載和獲取Web開發(fā)需要的相關(guān)JAR包。

4.自動化配置Spring和第三方庫

Spring Boot 充分考慮到與傳統(tǒng)Spring框架以及其他第三方庫融合的場景,在提供了各種場景依賴啟動器的基礎(chǔ)上,內(nèi)部還默認(rèn)提供了各種自動化配置類(例如 RedisAuto Configuration)。使用Spring Boot開發(fā)項(xiàng)目時(shí),一旦引入了某個(gè)場景的依賴啟動器,Spring Boot內(nèi)部提供的默認(rèn)自動化配置類就會生效,開發(fā)者無須手動在配置文件中進(jìn)行相關(guān)配置(除非開發(fā)者需要更改默認(rèn)配置),從而極大減少了開發(fā)人員的工作量,提高了程序的開發(fā)效率。

5.提供生產(chǎn)就緒功能

Spring Boot提供了一些用于生產(chǎn)環(huán)境運(yùn)行時(shí)的特性,例如指標(biāo)、監(jiān)控檢查和外部化配置。其中,指標(biāo)和監(jiān)控檢查可以幫助運(yùn)維人員在運(yùn)維期間監(jiān)控項(xiàng)目運(yùn)行情況;外部化配置可以使運(yùn)維人員快速、方便地進(jìn)行外部化配置和部署工作。

6.極少的代碼生成和XML配置

Spring Boot 框架內(nèi)部已經(jīng)實(shí)現(xiàn)了與Spring以及其他常用第三方庫的整合連接,并提供了默認(rèn)最優(yōu)化的整合配置,使用時(shí)基本上不需要額外生成配置代碼和XML配置文件。在需要自定義配置的情況下,Spring Boot更加提倡使用Java config(Java 配置類)替換傳統(tǒng)的XML配置方式,這樣更加方便查看和管理。

雖然說 Spring Boot有諸多的優(yōu)點(diǎn),但Spring Boot也有一些缺點(diǎn)。例如,Spring Boot入門較為簡單,但是深入理解和學(xué)習(xí)卻有一定的難度,這是因?yàn)镾pringBoot是在Spring框架的基礎(chǔ)上推出的,所以讀者想要弄明白Spring Boot的底層運(yùn)行機(jī)制,有必要對Spring框架有一定的了解。



分享到:
在線咨詢 我要報(bào)名
和我們在線交談!