首頁  >  文章  >  Java  >  SpringBoot官網建置、快速啟動的問題怎麼解決

SpringBoot官網建置、快速啟動的問題怎麼解決

WBOY
WBOY轉載
2023-05-11 09:25:051623瀏覽

    SpringBoot概述

    #SpringBoot 是由Pivotal團隊提供的全新框架,其設計目的是用來簡化Spring應用的初始建置以及開發流程。

    大家已經感受了SpringBoot 程序,回過頭看看SpringBoot 主要作用是什麼,就是簡化Spring 的搭建過程和開發過程。

    原始Spring 環境建置與開發有下列問題:

    • #配置繁瑣依賴

    • ##設定繁瑣

    SpringBoot 程式優點恰巧就是針對Spring 的缺點

      ## 自動配置。這個是用來解決
    • Spring

      程式配置繁瑣的問題

    • #開始依賴。這個是用來解決
    • Spring

      程式依賴設定繁瑣的問題

    • 輔助功能(內建伺服器,…)。我們在啟動
    • SpringBoot

      程式時既沒有使用本地的 tomcat 也沒有使用 tomcat 插件,而是使用 SpringBoot 內建的伺服器。

    • 接下來我們來說一下
    SpringBoot

    的起始依賴起始依賴

    我們使用

    Spring Initializr

    方式建立的Maven 工程的的pom.xml 設定檔中自動產生了許多包含starter 的依賴,如下圖

    SpringBoot官網建置、快速啟動的問題怎麼解決#這些依賴就是啟動依賴,接下來我們探討他是如何實現的。

    探索父工程

    從上面的檔案可以看到指定了一個父工程,我們進入到父工程,發現父工程中又指定了一個父工程,如下圖所示

    SpringBoot官網建置、快速啟動的問題怎麼解決再進入到該父工程中,在該工程中我們可以看到配置內容結構如下圖所示

    SpringBoot官網建置、快速啟動的問題怎麼解決上圖中的

    properties

    標籤中定義了各個技術軟體依賴的版本,避免了我們在使用不同軟體技術時考慮版本的相容問題。在properties 我們找servletmysql 的版本如下圖

    SpringBoot官網建置、快速啟動的問題怎麼解決##dependencyManagement

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

    groupidartifactId 不需要定義version build

    標籤中也對插件的版本進行了鎖定,如下圖

    看完了父工程中SpringBoot官網建置、快速啟動的問題怎麼解決 pom.xml

    的配置後不難理解我們工程的依賴為什麼都沒有配置

    version探索依賴

    在我們建立的工程中的
    pom.xml
    中配置瞭如下依賴

    進入到該依賴,查看SpringBoot官網建置、快速啟動的問題怎麼解決pom.xml

    的依賴會發現它引入瞭如下的依賴

    裡面的引入了SpringBoot官網建置、快速啟動的問題怎麼解決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 啟動咱們的工程。

    切換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>

    現在我們執行引導類別可以嗎?運行一下試試,列印的日誌資訊如下

    SpringBoot官網建置、快速啟動的問題怎麼解決

    程式直接停止了,為什麼呢?那是因為排除了 tomcat 伺服器,程式中就沒有伺服器了。所以此時不光要排除 tomcat 伺服器,也要引進 jetty 伺服器。在pom.xml 中因為jetty 的起步依賴

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jetty</artifactId>
    </dependency>

    接下來再次運行引導類,在日誌資訊中就可以看到使用的是 jetty 伺服器

    SpringBoot官網建置、快速啟動的問題怎麼解決

    小結:
    透過切換伺服器,我們不難發現在使用SpringBoot 換技術時只需要導入技術的起步依賴即可。

    spring與springboot的比較

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

    SpringBoot官網建置、快速啟動的問題怎麼解決

    座標

    • Spring 程式中的座標需要自己寫,而且座標非常多

    • SpringBoot 程式中的座標是我們在建立工程時勾選自動產生的

    ##web3.0設定類別

    • Spring 程式需要自己寫這個配置類別。這個配置類別大家之前寫過,肯定感覺很複雜

    • SpringBoot 程式不需要我們自己書寫

    #配置類別

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

    注意:基於Idea的

    Spring Initializr

    快速建置 SpringBoot 工程時需要連網。

    SpringBoot官網建置、快速啟動的問題怎麼解決官網建置工程

    在入門案例中之所以能快速建構SpringBoot 工程,是因為

    Idea

    使用了官網提供了快速建構SpringBoot官網建置、快速啟動的問題怎麼解決SpringBoot

    工程的元件實現的。那如何在官網進行工程建構呢?透過以下步驟建構

    進入SpringBoot官網進入到SpringBoot

    官網後拖到最下方就可以看到如下內容

    #然後點擊Spring Initializr 超連結就會跳到如下頁面

    ############這個頁面內容是不是感覺很眼熟的,這和我們使用###Idea### 快速建構###SpringBoot### 工程的介面基本上相同。在上面頁面輸入對應的資訊######選擇依賴######選擇###Spring Web### 可以點擊上圖右上角的###ADD DEPENDENCIES... CTRL B### 按鈕,就會出現如下介面###

    SpringBoot官網建置、快速啟動的問題怎麼解決

    生成工程

    以上步骤完成后就可以生成 SpringBoot 工程了。在页面的最下方点击 GENERATE CTRL + 回车 按钮生成工程并下载到本地,如下图所示

    SpringBoot官網建置、快速啟動的問題怎麼解決

    打开下载好的压缩包可以看到工程结构和使用 Idea 生成的一模一样,如下图

    SpringBoot官網建置、快速啟動的問題怎麼解決

    而打开 pom.xml 文件,里面也包含了父工程和 Spring Web 的依赖。

    通过上面官网的操作,我们知道 Idea 中快速构建 SpringBoot 工程其实就是使用的官网的快速构建组件,那以后即使没有 Idea 也可以使用官网的方式构建 SpringBoot 工程。

    SpringBoot工程快速启动

    问题引入

    SpringBoot官網建置、快速啟動的問題怎麼解決

    以后我们和前端开发人员协同开发,而前端开发人员需要测试前端程序就需要后端开启服务器,这就受制于后端开发人员。为了摆脱这个受制,前端开发人员尝试着在自己电脑上安装 TomcatIdea ,在自己电脑上启动后端程序,这显然不现实。

    我们后端可以将 SpringBoot 工程打成 jar 包,该 jar 包运行不依赖于 TomcatIdea 这些工具也可以正常运行,只是这个 jar 包在运行过程中连接和我们自己程序相同的 Mysql 数据库即可。这样就可以解决这个问题,如下图

    SpringBoot官網建置、快速啟動的問題怎麼解決

    那现在问题是如何打包呢?

    打包

    由于我们在构建 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官網建置、快速啟動的問題怎麼解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    陳述:
    本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除