如何靈活使用SpringBoot
作者:xcbeyond
瘋狂源自夢(mèng)想,技術(shù)成就輝煌!微信公眾號(hào):《程序猿技術(shù)大咖》號(hào)主,專注后端開發(fā)多年,擁有豐富的研發(fā)經(jīng)驗(yàn),樂于技術(shù)輸出、分享,現(xiàn)階段從事微服務(wù)架構(gòu)項(xiàng)目的研發(fā)工作,涉及架構(gòu)設(shè)計(jì)、技術(shù)選型、業(yè)務(wù)研發(fā)等工作。對(duì)于Java、微服務(wù)、數(shù)據(jù)庫、Docker有深入了解,并有大量的調(diào)優(yōu)經(jīng)驗(yàn)。
在上一章節(jié)中,主要講述如何搭建SpringBoot項(xiàng)目,讓大家對(duì)SpringBoot有個(gè)初步感性的認(rèn)識(shí),對(duì)她有所好感。本章節(jié)詳細(xì)介紹如何更好的使用SpringBoot,包括項(xiàng)目的構(gòu)建、自動(dòng)配置及一些依賴包,雖然這些并不是SpringBoot項(xiàng)目必須要遵循的,但如果遵循這些建議,你的開發(fā)過程將會(huì)更加的容易些,不信往下看。
1、項(xiàng)目構(gòu)建
上一章節(jié)已經(jīng)講述了如何搭建SpringBoot項(xiàng)目的方法,但沒有告訴大家為什么要這么弄,為何使用Maven?Maven到底是個(gè)什么鬼。
1.1 Maven
在傳統(tǒng)Java項(xiàng)目開發(fā)過程中,都會(huì)出現(xiàn)以下情況:
依賴其他三方j(luò)ar包或者不同模塊依賴相同的jar包,都需要將jar包復(fù)制、粘貼到/lib目錄下管理,同樣的jar包重復(fù)出現(xiàn)在不同的工程中,一方面浪費(fèi)空間,同時(shí)也讓工程臃腫。
有時(shí)一些jar包都需要到各個(gè)官網(wǎng)網(wǎng)站下載, 浪費(fèi)時(shí)間,下載不全。(這點(diǎn)相信大家都深有體會(huì))
一個(gè)jar包依賴的其他jar包可能沒導(dǎo)入到項(xiàng)目而導(dǎo)致項(xiàng)目跑不起來。
……
然而采用Maven構(gòu)建的項(xiàng)目就可以解決上述問題,無需關(guān)心依賴的包在哪,只要知道它叫什么,要用那個(gè)版本即可。因此,強(qiáng)烈建議使用Maven來構(gòu)建Spring Boot. (Gradle與Maven類似,感興趣的小伙伴可以嘗試一下。)
目前大部分的依賴的jar包官網(wǎng)都提供很好的依賴項(xiàng)配置(pom.xml),SpringBoot的構(gòu)建也不例外,上一章節(jié)就得到了很好的說明。
1.2 依賴配置
Spring Boot項(xiàng)目配置為繼承spring-boot-starter-parent,在項(xiàng)目的pom.xml配置如下:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
<relativePath/>
</parent>
1.3 Maven插件打包
開發(fā)完一個(gè)項(xiàng)目,必須經(jīng)過的幾個(gè)重要的環(huán)節(jié)就是編譯、打包、部署,而Spring Boot提供了Maven插件,可以將項(xiàng)目打包為可執(zhí)行jar。需要在項(xiàng)目的pom.xml中添加build配置,如下示例:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
然后通過Eclipse中項(xiàng)目右鍵->Run As -> Maven build打包即可。
2、Spring Boot依賴包
Spring Boot中有一系列的spring-boot-starter-*包,然后通過Ec這類jar稱之為Spring Boot啟動(dòng)器,啟動(dòng)器包含許多依賴項(xiàng),這是使項(xiàng)目快速啟動(dòng)和運(yùn)行所需的依賴項(xiàng)。下表就是官方提供的部分啟動(dòng)器及說明:

更多請(qǐng)?jiān)诠倬W(wǎng)查詢。