最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于SpringBoot簡介、官網(wǎng)構(gòu)建、快速啟動的問題

 更新時間:2022年07月26日 15:19:00   作者:十八歲討厭編程  
SpringBoot 是由Pivotal團隊提供的全新框架,其設計目的是用來簡化Spring應用的初始搭建以及開發(fā)過程,這篇文章主要介紹了SpringBoot簡介、官網(wǎng)構(gòu)建、快速啟動,需要的朋友可以參考下

SpringBoot概述

SpringBoot 是由Pivotal團隊提供的全新框架,其設計目的是用來簡化Spring應用的初始搭建以及開發(fā)過程。

大家已經(jīng)感受了 SpringBoot 程序,回過頭看看 SpringBoot 主要作用是什么,就是簡化 Spring 的搭建過程和開發(fā)過程。

原始 Spring 環(huán)境搭建和開發(fā)存在以下問題:

  • 配置繁瑣依賴
  • 設置繁瑣

SpringBoot 程序優(yōu)點恰巧就是針對 Spring 的缺點

  • 自動配置。這個是用來解決 Spring 程序配置繁瑣的問題
  • 起步依賴。這個是用來解決 Spring 程序依賴設置繁瑣的問題
  • 輔助功能(內(nèi)置服務器,…)。我們在啟動 SpringBoot 程序時既沒有使用本地的 tomcat 也沒有使用 tomcat 插件,而是使用 SpringBoot 內(nèi)置的服務器。

接下來我們來說一下 SpringBoot 的起步依賴

起步依賴

我們使用 Spring Initializr 方式創(chuàng)建的 Maven 工程的的 pom.xml 配置文件中自動生成了很多包含 starter 的依賴,如下圖

這些依賴就是啟動依賴,接下來我們探究一下他是如何實現(xiàn)的。

探索父工程

從上面的文件中可以看到指定了一個父工程,我們進入到父工程,發(fā)現(xiàn)父工程中又指定了一個父工程,如下圖所示

再進入到該父工程中,在該工程中我們可以看到配置內(nèi)容結(jié)構(gòu)如下圖所示

上圖中的 properties 標簽中定義了各個技術(shù)軟件依賴的版本,避免了我們在使用不同軟件技術(shù)時考慮版本的兼容問題。在 properties 中我們找 servletmysql 的版本如下圖

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

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

看完了父工程中 pom.xml 的配置后不難理解我們工程的的依賴為什么都沒有配置 version

探索依賴

在我們創(chuàng)建的工程中的 pom.xml 中配置了如下依賴

進入到該依賴,查看 pom.xml 的依賴會發(fā)現(xiàn)它引入了如下的依賴

里面的引入了 spring-webspring-webmvc 的依賴,這就是為什么我們的工程中沒有依賴這兩個包還能正常使用 springMVC 中的注解的原因。

而依賴 spring-boot-starter-tomcat ,從名字基本能確認內(nèi)部依賴了 tomcat,所以我們的工程才能正常啟動。

結(jié)論:以后需要使用技術(shù),只需要引入該技術(shù)對應的起步依賴即可

小結(jié)

starter

  • SpringBoot 中常見項目名稱,定義了當前項目使用的所有項目坐標,以達到減少依賴配置的目的

parent

  • 所有 SpringBoot 項目要繼承的項目,定義了若干個坐標版本號(依賴管理,而非依賴),以達到減少依賴沖突的目的
  • spring-boot-starter-parent(2.5.0)與 spring-boot-starter-parent(2.4.6)共計57處坐標版本不同

實際開發(fā)

使用任意坐標時,僅書寫GAV中的G和A,V由SpringBoot提供

G:groupid

A:artifactId

V:version

如發(fā)生坐標錯誤,再指定version(要小心版本沖突)

程序啟動

創(chuàng)建的每一個 SpringBoot 程序時都包含一個類似于下面的類,我們將這個類稱作引導類

@SpringBootApplication
public class Springboot01QuickstartApplication {
    
    public static void main(String[] args) {
        SpringApplication.run(Springboot01QuickstartApplication.class, args);
    }
}

注意:

  • SpringBoot 在創(chuàng)建項目時,采用jar的打包方式
  • SpringBoot 的引導類是項目的入口,運行 main 方法就可以啟動項目

因為我們在 pom.xml 中配置了 spring-boot-starter-web 依賴,而該依賴通過前面的學習知道它依賴 tomcat ,所以運行 main 方法就可以使用 tomcat 啟動咱們的工程。

切換web服務器

現(xiàn)在我們啟動工程使用的是 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>

現(xiàn)在我們運行引導類可以嗎?運行一下試試,打印的日志信息如下

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

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

接下來再次運行引導類,在日志信息中就可以看到使用的是 jetty 服務器

小結(jié):
通過切換服務器,我們不難發(fā)現(xiàn)在使用 SpringBoot 換技術(shù)時只需要導入該技術(shù)的起步依賴即可。

spring與springboot的對比

我們前文做完入門案例后,可以發(fā)現(xiàn)兩者有很大的不同:

坐標

  • Spring 程序中的坐標需要自己編寫,而且坐標非常多
  • SpringBoot 程序中的坐標是我們在創(chuàng)建工程時進行勾選自動生成的

web3.0配置類

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

配置類

  • Spring/SpringMVC 程序的配置類需要自己書寫。而 SpringBoot 程序則不需要書寫。

注意:基于Idea的 Spring Initializr 快速構(gòu)建 SpringBoot 工程時需要聯(lián)網(wǎng)。

官網(wǎng)構(gòu)建工程

在入門案例中之所以能快速構(gòu)建 SpringBoot 工程,是因為 Idea 使用了官網(wǎng)提供了快速構(gòu)建 SpringBoot 工程的組件實現(xiàn)的。那如何在官網(wǎng)進行工程構(gòu)建呢?通過如下步驟構(gòu)建

進入SpringBoot官網(wǎng)

官網(wǎng)地址如下:

https://spring.io/projects/spring-boot

進入到 SpringBoot 官網(wǎng)后拖到最下方就可以看到如下內(nèi)容

然后點擊 Spring Initializr 超鏈接就會跳轉(zhuǎn)到如下頁面

這個頁面內(nèi)容是不是感覺很眼熟的,這和我們使用 Idea 快速構(gòu)建 SpringBoot 工程的界面基本相同。在上面頁面輸入對應的信息

選擇依賴

選擇 Spring Web 可以點擊上圖右上角的 ADD DEPENDENCIES... CTRL + B 按鈕,就會出現(xiàn)如下界面

生成工程

以上步驟完成后就可以生成 SpringBoot 工程了。在頁面的最下方點擊 GENERATE CTRL + 回車 按鈕生成工程并下載到本地,如下圖所示

打開下載好的壓縮包可以看到工程結(jié)構(gòu)和使用 Idea 生成的一模一樣,如下圖

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

通過上面官網(wǎng)的操作,我們知道 Idea 中快速構(gòu)建 SpringBoot 工程其實就是使用的官網(wǎng)的快速構(gòu)建組件,那以后即使沒有 Idea 也可以使用官網(wǎng)的方式構(gòu)建 SpringBoot 工程。

SpringBoot工程快速啟動

問題引入

以后我們和前端開發(fā)人員協(xié)同開發(fā),而前端開發(fā)人員需要測試前端程序就需要后端開啟服務器,這就受制于后端開發(fā)人員。為了擺脫這個受制,前端開發(fā)人員嘗試著在自己電腦上安裝 TomcatIdea ,在自己電腦上啟動后端程序,這顯然不現(xiàn)實。

我們后端可以將 SpringBoot 工程打成 jar 包,該 jar 包運行不依賴于 TomcatIdea 這些工具也可以正常運行,只是這個 jar 包在運行過程中連接和我們自己程序相同的 Mysql 數(shù)據(jù)庫即可。這樣就可以解決這個問題,如下圖

那現(xiàn)在問題是如何打包呢?

打包

由于我們在構(gòu)建 SpringBoot 工程時已經(jīng)在 pom.xml 中配置了如下插件

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

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

注意:該插件必須配置,不然打好的 jar 包也是有問題的。

啟動

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

java -jar 包名.jar

執(zhí)行上述命令就可以看到 SpringBoot 運行的日志信息

到此這篇關(guān)于SpringBoot簡介、官網(wǎng)構(gòu)建、快速啟動的文章就介紹到這了,更多相關(guān)SpringBoot快速啟動內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java NIO實戰(zhàn)之聊天室功能詳解

    Java NIO實戰(zhàn)之聊天室功能詳解

    這篇文章主要介紹了Java NIO實戰(zhàn)之聊天室功能,結(jié)合實例形式詳細分析了java NIO聊天室具體的服務端、客戶端相關(guān)實現(xiàn)方法與操作注意事項,需要的朋友可以參考下
    2019-11-11
  • Java訪問權(quán)限控制的重要性深入講解

    Java訪問權(quán)限控制的重要性深入講解

    這篇文章主要給大家介紹了關(guān)于Java訪問權(quán)限控制的重要性的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-11-11
  • Java嵌套for循環(huán)的幾種常見優(yōu)化方案

    Java嵌套for循環(huán)的幾種常見優(yōu)化方案

    這篇文章主要給大家介紹了關(guān)于Java嵌套for循環(huán)的幾種常見優(yōu)化,在Java中優(yōu)化嵌套for循環(huán)可以通過以下幾種方式來提高性能和效率,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-07-07
  • Java如何獲取接口所有的實現(xiàn)類

    Java如何獲取接口所有的實現(xiàn)類

    這篇文章主要介紹了Java如何獲取接口所有的實現(xiàn)類,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 2020最新eclipse安裝過程及細節(jié)

    2020最新eclipse安裝過程及細節(jié)

    這篇文章主要介紹了2020最新eclipse安裝過程及細節(jié),本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • Java經(jīng)典面試題匯總:Spring MVC

    Java經(jīng)典面試題匯總:Spring MVC

    本篇總結(jié)的是Spring MVC框架相關(guān)的面試題,后續(xù)會持續(xù)更新,希望我的分享可以幫助到正在備戰(zhàn)面試的實習生或者已經(jīng)工作的同行,如果發(fā)現(xiàn)錯誤還望大家多多包涵,不吝賜教,謝謝
    2021-07-07
  • 使用Pinyin4j進行拼音分詞的方法

    使用Pinyin4j進行拼音分詞的方法

    下面小編就為大家分享一篇使用Pinyin4j進行拼音分詞的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • java算法Leecode刷題統(tǒng)計有序矩陣中的負數(shù)

    java算法Leecode刷題統(tǒng)計有序矩陣中的負數(shù)

    這篇文章主要為大家介紹了java算法Leecode刷題統(tǒng)計有序矩陣中的負數(shù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • Java中CyclicBarrier?循環(huán)屏障

    Java中CyclicBarrier?循環(huán)屏障

    這篇文章主要介紹了Java中CyclicBarrier?循環(huán)屏障,可以實現(xiàn)讓一組線程等待至某個狀態(tài)屏障點之后再全部同時執(zhí)行,下面文章分享CyclicBarrier循環(huán)屏障的原理,需要的小伙伴可以參考一下
    2022-05-05
  • java的三種隨機數(shù)生成方式

    java的三種隨機數(shù)生成方式

    主要介紹了java的三種隨機數(shù)生成方式的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,,需要的朋友可以參考下
    2021-07-07

最新評論

台北市| 巴南区| 高碑店市| 岫岩| 临朐县| 澎湖县| 梁河县| 遵义市| 县级市| 罗平县| 塔城市| 彭泽县| 平遥县| 五原县| 尖扎县| 元阳县| 金寨县| 静海县| 奉新县| 沂水县| 莲花县| 易门县| 禹州市| 鹿泉市| 上饶县| 微博| 乌海市| 台南市| 涞源县| 中江县| 区。| 桑植县| 资阳市| 西和县| 手机| 金寨县| 喜德县| 体育| 剑河县| 雷山县| 北宁市|