搜尋
首頁Javajava教程SpringBoot官網建置、快速啟動的問題怎麼解決

    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中文網其他相關文章!

    陳述
    本文轉載於:亿速云。如有侵權,請聯絡admin@php.cn刪除
    為什麼Java是開發跨平台桌面應用程序的流行選擇?為什麼Java是開發跨平台桌面應用程序的流行選擇?Apr 25, 2025 am 12:23 AM

    javaispopularforcross-platformdesktopapplicationsduetoits“ writeonce,runany where”哲學。 1)itusesbytiesebyTecodeThatrunsonAnyJvm-備用Platform.2)librarieslikeslikeslikeswingingandjavafxhelpcreatenative-lookingenative-lookinguisis.3)

    討論可能需要在Java中編寫平台特定代碼的情況。討論可能需要在Java中編寫平台特定代碼的情況。Apr 25, 2025 am 12:22 AM

    在Java中編寫平台特定代碼的原因包括訪問特定操作系統功能、與特定硬件交互和優化性能。 1)使用JNA或JNI訪問Windows註冊表;2)通過JNI與Linux特定硬件驅動程序交互;3)通過JNI使用Metal優化macOS上的遊戲性能。儘管如此,編寫平台特定代碼會影響代碼的可移植性、增加複雜性、可能帶來性能開銷和安全風險。

    與平台獨立性相關的Java開發的未來趨勢是什麼?與平台獨立性相關的Java開發的未來趨勢是什麼?Apr 25, 2025 am 12:12 AM

    Java將通過雲原生應用、多平台部署和跨語言互操作進一步提昇平台獨立性。 1)雲原生應用將使用GraalVM和Quarkus提升啟動速度。 2)Java將擴展到嵌入式設備、移動設備和量子計算機。 3)通過GraalVM,Java將與Python、JavaScript等語言無縫集成,增強跨語言互操作性。

    Java的強鍵入如何有助於平台獨立性?Java的強鍵入如何有助於平台獨立性?Apr 25, 2025 am 12:11 AM

    Java的強類型系統通過類型安全、統一的類型轉換和多態性確保了平台獨立性。 1)類型安全在編譯時進行類型檢查,避免運行時錯誤;2)統一的類型轉換規則在所有平台上一致;3)多態性和接口機制使代碼在不同平台上行為一致。

    說明Java本機界面(JNI)如何損害平台獨立性。說明Java本機界面(JNI)如何損害平台獨立性。Apr 25, 2025 am 12:07 AM

    JNI會破壞Java的平台獨立性。 1)JNI需要特定平台的本地庫,2)本地代碼需在目標平台編譯和鏈接,3)不同版本的操作系統或JVM可能需要不同的本地庫版本,4)本地代碼可能引入安全漏洞或導致程序崩潰。

    是否有任何威脅或增強Java平台獨立性的新興技術?是否有任何威脅或增強Java平台獨立性的新興技術?Apr 24, 2025 am 12:11 AM

    新興技術對Java的平台獨立性既有威脅也有增強。 1)雲計算和容器化技術如Docker增強了Java的平台獨立性,但需要優化以適應不同雲環境。 2)WebAssembly通過GraalVM編譯Java代碼,擴展了其平台獨立性,但需與其他語言競爭性能。

    JVM的實現是什麼,它們都提供了相同的平台獨立性?JVM的實現是什麼,它們都提供了相同的平台獨立性?Apr 24, 2025 am 12:10 AM

    不同JVM實現都能提供平台獨立性,但表現略有不同。 1.OracleHotSpot和OpenJDKJVM在平台獨立性上表現相似,但OpenJDK可能需額外配置。 2.IBMJ9JVM在特定操作系統上表現優化。 3.GraalVM支持多語言,需額外配置。 4.AzulZingJVM需特定平台調整。

    平台獨立性如何降低發展成本和時間?平台獨立性如何降低發展成本和時間?Apr 24, 2025 am 12:08 AM

    平台獨立性通過在多種操作系統上運行同一套代碼,降低開發成本和縮短開發時間。具體表現為:1.減少開發時間,只需維護一套代碼;2.降低維護成本,統一測試流程;3.快速迭代和團隊協作,簡化部署過程。

    See all articles

    熱AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智慧驅動的應用程序,用於創建逼真的裸體照片

    AI Clothes Remover

    AI Clothes Remover

    用於從照片中去除衣服的線上人工智慧工具。

    Undress AI Tool

    Undress AI Tool

    免費脫衣圖片

    Clothoff.io

    Clothoff.io

    AI脫衣器

    Video Face Swap

    Video Face Swap

    使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

    熱工具

    ZendStudio 13.5.1 Mac

    ZendStudio 13.5.1 Mac

    強大的PHP整合開發環境

    SublimeText3 英文版

    SublimeText3 英文版

    推薦:為Win版本,支援程式碼提示!

    記事本++7.3.1

    記事本++7.3.1

    好用且免費的程式碼編輯器

    SAP NetWeaver Server Adapter for Eclipse

    SAP NetWeaver Server Adapter for Eclipse

    將Eclipse與SAP NetWeaver應用伺服器整合。

    WebStorm Mac版

    WebStorm Mac版

    好用的JavaScript開發工具