您好,登錄后才能下訂單哦!
這篇文章主要講解了“SpringBoot官網(wǎng)構(gòu)建、快速啟動(dòng)的問題怎么解決”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“SpringBoot官網(wǎng)構(gòu)建、快速啟動(dòng)的問題怎么解決”吧!
SpringBoot
是由Pivotal團(tuán)隊(duì)提供的全新框架,其設(shè)計(jì)目的是用來簡化Spring應(yīng)用的初始搭建以及開發(fā)過程。
大家已經(jīng)感受了 SpringBoot
程序,回過頭看看 SpringBoot
主要作用是什么,就是簡化 Spring
的搭建過程和開發(fā)過程。
原始 Spring
環(huán)境搭建和開發(fā)存在以下問題:
配置繁瑣依賴
設(shè)置繁瑣
SpringBoot
程序優(yōu)點(diǎn)恰巧就是針對(duì) Spring
的缺點(diǎn)
自動(dòng)配置。這個(gè)是用來解決 Spring
程序配置繁瑣的問題
起步依賴。這個(gè)是用來解決 Spring
程序依賴設(shè)置繁瑣的問題
輔助功能(內(nèi)置服務(wù)器,…)。我們?cè)趩?dòng) SpringBoot
程序時(shí)既沒有使用本地的 tomcat
也沒有使用 tomcat
插件,而是使用 SpringBoot
內(nèi)置的服務(wù)器。
接下來我們來說一下 SpringBoot
的起步依賴
我們使用 Spring Initializr
方式創(chuàng)建的 Maven
工程的的 pom.xml
配置文件中自動(dòng)生成了很多包含 starter
的依賴,如下圖
這些依賴就是啟動(dòng)依賴,接下來我們探究一下他是如何實(shí)現(xiàn)的。
從上面的文件中可以看到指定了一個(gè)父工程,我們進(jìn)入到父工程,發(fā)現(xiàn)父工程中又指定了一個(gè)父工程,如下圖所示
再進(jìn)入到該父工程中,在該工程中我們可以看到配置內(nèi)容結(jié)構(gòu)如下圖所示
上圖中的 properties
標(biāo)簽中定義了各個(gè)技術(shù)軟件依賴的版本,避免了我們?cè)谑褂貌煌浖夹g(shù)時(shí)考慮版本的兼容問題。在 properties
中我們找 servlet
和 mysql
的版本如下圖
dependencyManagement
標(biāo)簽是進(jìn)行依賴版本鎖定,但是并沒有導(dǎo)入對(duì)應(yīng)的依賴;如果我們工程需要那個(gè)依賴只需要引入依賴的 groupid
和 artifactId
不需要定義 version
。
而 build
標(biāo)簽中也對(duì)插件的版本進(jìn)行了鎖定,如下圖
看完了父工程中 pom.xml
的配置后不難理解我們工程的的依賴為什么都沒有配置 version
。
在我們創(chuàng)建的工程中的 pom.xml
中配置了如下依賴
進(jìn)入到該依賴,查看 pom.xml
的依賴會(huì)發(fā)現(xiàn)它引入了如下的依賴
里面的引入了 spring-web
和 spring-webmvc
的依賴,這就是為什么我們的工程中沒有依賴這兩個(gè)包還能正常使用 springMVC
中的注解的原因。
而依賴 spring-boot-starter-tomcat
,從名字基本能確認(rèn)內(nèi)部依賴了 tomcat
,所以我們的工程才能正常啟動(dòng)。
結(jié)論:以后需要使用技術(shù),只需要引入該技術(shù)對(duì)應(yīng)的起步依賴即可
starter
SpringBoot
中常見項(xiàng)目名稱,定義了當(dāng)前項(xiàng)目使用的所有項(xiàng)目坐標(biāo),以達(dá)到減少依賴配置的目的
parent
所有 SpringBoot
項(xiàng)目要繼承的項(xiàng)目,定義了若干個(gè)坐標(biāo)版本號(hào)(依賴管理,而非依賴),以達(dá)到減少依賴沖突的目的
spring-boot-starter-parent
(2.5.0)與 spring-boot-starter-parent
(2.4.6)共計(jì)57處坐標(biāo)版本不同
實(shí)際開發(fā)
使用任意坐標(biāo)時(shí),僅書寫GAV中的G和A,V由SpringBoot提供
G:groupid
A:artifactId
V:version
如發(fā)生坐標(biāo)錯(cuò)誤,再指定version(要小心版本沖突)
創(chuàng)建的每一個(gè) SpringBoot
程序時(shí)都包含一個(gè)類似于下面的類,我們將這個(gè)類稱作引導(dǎo)類
@SpringBootApplication public class Springboot01QuickstartApplication { public static void main(String[] args) { SpringApplication.run(Springboot01QuickstartApplication.class, args); } }
注意:
SpringBoot
在創(chuàng)建項(xiàng)目時(shí),采用jar的打包方式
SpringBoot
的引導(dǎo)類是項(xiàng)目的入口,運(yùn)行 main
方法就可以啟動(dòng)項(xiàng)目
因?yàn)槲覀冊(cè)?pom.xml
中配置了 spring-boot-starter-web
依賴,而該依賴通過前面的學(xué)習(xí)知道它依賴 tomcat
,所以運(yùn)行 main
方法就可以使用 tomcat
啟動(dòng)咱們的工程。
現(xiàn)在我們啟動(dòng)工程使用的是 tomcat
服務(wù)器,那能不能不使用 tomcat
而使用 jetty
服務(wù)器,jetty
在我們 maven
高級(jí)時(shí)講 maven
私服使用的服務(wù)器。而要切換 web
服務(wù)器就需要將默認(rèn)的 tomcat
服務(wù)器給排除掉,怎么排除呢?使用 exclusion
標(biāo)簽
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <artifactId>spring-boot-starter-tomcat</artifactId> <groupId>org.springframework.boot</groupId> </exclusion> </exclusions> </dependency>
現(xiàn)在我們運(yùn)行引導(dǎo)類可以嗎?運(yùn)行一下試試,打印的日志信息如下
程序直接停止了,為什么呢?那是因?yàn)榕懦?tomcat
服務(wù)器,程序中就沒有服務(wù)器了。所以此時(shí)不光要排除 tomcat
服務(wù)器,還要引入 jetty
服務(wù)器。在 pom.xml
中因?yàn)?jetty
的起步依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jetty</artifactId> </dependency>
接下來再次運(yùn)行引導(dǎo)類,在日志信息中就可以看到使用的是 jetty
服務(wù)器
小結(jié):
通過切換服務(wù)器,我們不難發(fā)現(xiàn)在使用SpringBoot
換技術(shù)時(shí)只需要導(dǎo)入該技術(shù)的起步依賴即可。
我們前文做完入門案例后,可以發(fā)現(xiàn)兩者有很大的不同:
坐標(biāo)
Spring
程序中的坐標(biāo)需要自己編寫,而且坐標(biāo)非常多
SpringBoot
程序中的坐標(biāo)是我們?cè)趧?chuàng)建工程時(shí)進(jìn)行勾選自動(dòng)生成的
web3.0配置類
Spring
程序需要自己編寫這個(gè)配置類。這個(gè)配置類大家之前編寫過,肯定感覺很復(fù)雜
SpringBoot
程序不需要我們自己書寫
配置類
Spring/SpringMVC
程序的配置類需要自己書寫。而 SpringBoot
程序則不需要書寫。
注意:基于Idea的
Spring Initializr
快速構(gòu)建SpringBoot
工程時(shí)需要聯(lián)網(wǎng)。
在入門案例中之所以能快速構(gòu)建 SpringBoot
工程,是因?yàn)?Idea
使用了官網(wǎng)提供了快速構(gòu)建 SpringBoot
工程的組件實(shí)現(xiàn)的。那如何在官網(wǎng)進(jìn)行工程構(gòu)建呢?通過如下步驟構(gòu)建
進(jìn)入到 SpringBoot
官網(wǎng)后拖到最下方就可以看到如下內(nèi)容
然后點(diǎn)擊 Spring Initializr
超鏈接就會(huì)跳轉(zhuǎn)到如下頁面
這個(gè)頁面內(nèi)容是不是感覺很眼熟的,這和我們使用 Idea
快速構(gòu)建 SpringBoot
工程的界面基本相同。在上面頁面輸入對(duì)應(yīng)的信息
選擇 Spring Web
可以點(diǎn)擊上圖右上角的 ADD DEPENDENCIES... CTRL + B
按鈕,就會(huì)出現(xiàn)如下界面
以上步驟完成后就可以生成 SpringBoot
工程了。在頁面的最下方點(diǎn)擊 GENERATE CTRL + 回車
按鈕生成工程并下載到本地,如下圖所示
打開下載好的壓縮包可以看到工程結(jié)構(gòu)和使用 Idea
生成的一模一樣,如下圖
而打開 pom.xml
文件,里面也包含了父工程和 Spring Web
的依賴。
通過上面官網(wǎng)的操作,我們知道 Idea
中快速構(gòu)建 SpringBoot
工程其實(shí)就是使用的官網(wǎng)的快速構(gòu)建組件,那以后即使沒有 Idea
也可以使用官網(wǎng)的方式構(gòu)建 SpringBoot
工程。
以后我們和前端開發(fā)人員協(xié)同開發(fā),而前端開發(fā)人員需要測試前端程序就需要后端開啟服務(wù)器,這就受制于后端開發(fā)人員。為了擺脫這個(gè)受制,前端開發(fā)人員嘗試著在自己電腦上安裝 Tomcat
和 Idea
,在自己電腦上啟動(dòng)后端程序,這顯然不現(xiàn)實(shí)。
我們后端可以將 SpringBoot
工程打成 jar
包,該 jar
包運(yùn)行不依賴于 Tomcat
和 Idea
這些工具也可以正常運(yùn)行,只是這個(gè) jar
包在運(yùn)行過程中連接和我們自己程序相同的 Mysql
數(shù)據(jù)庫即可。這樣就可以解決這個(gè)問題,如下圖
那現(xiàn)在問題是如何打包呢?
由于我們?cè)跇?gòu)建 SpringBoot
工程時(shí)已經(jīng)在 pom.xml
中配置了如下插件
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin>
所以我們只需要使用 Maven
的 package
指令打包就會(huì)在 target
目錄下生成對(duì)應(yīng)的 Jar
包。
注意:該插件必須配置,不然打好的
jar
包也是有問題的。
進(jìn)入 jar
包所在位置,在 命令提示符
中輸入如下命令
java -jar 包名.jar
執(zhí)行上述命令就可以看到 SpringBoot
運(yùn)行的日志信息
感謝各位的閱讀,以上就是“SpringBoot官網(wǎng)構(gòu)建、快速啟動(dòng)的問題怎么解決”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)SpringBoot官網(wǎng)構(gòu)建、快速啟動(dòng)的問題怎么解決這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。