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