<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
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
工程的元件實現的。那如何在官網進行工程構建呢?通過如下步驟構建
官網地址如下:
https://spring.io/projects/spring-boot
進入到 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快速啟動內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45