首頁 > 軟體

關於SpringBoot簡介、官網構建、快速啟動的問題

2022-07-26 18:04:11

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 中我們找 servletmysql 的版本如下圖

dependencyManagement 標籤是進行依賴版本鎖定,但是並沒有匯入對應的依賴;如果我們工程需要那個依賴只需要引入依賴的 groupidartifactId 不需要定義 version

build 標籤中也對外掛的版本進行了鎖定,如下圖

看完了父工程中 pom.xml 的設定後不難理解我們工程的的依賴為什麼都沒有設定 version

探索依賴

在我們建立的工程中的 pom.xml 中設定了如下依賴

進入到該依賴,檢視 pom.xml 的依賴會發現它引入瞭如下的依賴

裡面的引入了 spring-webspring-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 啟動咱們的工程。

切換web伺服器

現在我們啟動工程使用的是 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的對比

我們前文做完入門案例後,可以發現兩者有很大的不同:

座標

  • Spring 程式中的座標需要自己編寫,而且座標非常多
  • SpringBoot 程式中的座標是我們在建立工程時進行勾選自動生成的

web3.0設定類

  • Spring 程式需要自己編寫這個設定類。這個設定類大家之前編寫過,肯定感覺很複雜
  • SpringBoot 程式不需要我們自己書寫

設定類

  • Spring/SpringMVC 程式的設定類需要自己書寫。而 SpringBoot 程式則不需要書寫。

注意:基於Idea的 Spring Initializr 快速構建 SpringBoot 工程時需要聯網。

官網構建工程

在入門案例中之所以能快速構建 SpringBoot 工程,是因為 Idea 使用了官網提供了快速構建 SpringBoot 工程的元件實現的。那如何在官網進行工程構建呢?通過如下步驟構建

進入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 工程。

SpringBoot工程快速啟動

問題引入

以後我們和前端開發人員協同開發,而前端開發人員需要測試前端程式就需要後端開啟伺服器,這就受制於後端開發人員。為了擺脫這個受制,前端開發人員嘗試著在自己電腦上安裝 TomcatIdea ,在自己電腦上啟動後端程式,這顯然不現實。

我們後端可以將 SpringBoot 工程打成 jar 包,該 jar 包執行不依賴於 TomcatIdea 這些工具也可以正常執行,只是這個 jar 包在執行過程中連線和我們自己程式相同的 Mysql 資料庫即可。這樣就可以解決這個問題,如下圖

那現在問題是如何打包呢?

打包

由於我們在構建 SpringBoot 工程時已經在 pom.xml 中設定了如下外掛

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
</plugin>

所以我們只需要使用 Mavenpackage 指令打包就會在 target 目錄下生成對應的 Jar 包。

注意:該外掛必須設定,不然打好的 jar 包也是有問題的。

啟動

進入 jar 包所在位置,在 命令提示字元 中輸入如下命令

java -jar 包名.jar

執行上述命令就可以看到 SpringBoot 執行的紀錄檔資訊

到此這篇關於SpringBoot簡介、官網構建、快速啟動的文章就介紹到這了,更多相關SpringBoot快速啟動內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com