日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Spring Boot2(004):關(guān)于 Build Systems (構(gòu)建系統(tǒng))

 印度阿三17 2019-11-18

  Spring Boot Ref 建議使用 maven 或者 gradle 來進(jìn)行依賴管理和應(yīng)用構(gòu)建。

一、Dependency Management(依賴管理)

  Spring Boot 的每個版本都會有相應(yīng)的依賴包支持版本列表,我們開發(fā)時通??梢圆挥藐P(guān)注這些依賴配置(當(dāng)然也可以根據(jù)需要進(jìn)行指定),Spring Boot 本身會自己進(jìn)行管理,而且在對 spring boot 進(jìn)行版本升級時相關(guān)的依賴版本也會跟著一致升級。而這個依賴包支持版本列表(包括 spring 模塊和第三方依賴包)可以在 BOM (Bills of Materials,物料清單,這個翻譯有點(diǎn)怪) 中查找到,BOM 可用于 mavengradle

  注意:Spring Boot 的每個版本都會與一個基本的 Spring Framework 版本關(guān)聯(lián),建議使用默認(rèn)。

二、Maven

  Maven 用戶可以通過繼承 spring-boot-starter-parent 來獲得預(yù)設(shè)配置,它提供了如下特性:

    • 默認(rèn)編譯級別是 Java 1.8

  • 默認(rèn) UTF-8 編碼

  • 獲得繼承自 spring-boot-dependencies pom 的依賴管理清單,里面維護(hù)了通用依賴的版本,當(dāng)我們在自己的 pom 中需要使用這些依賴時,可以忽略版本 <version> 項(xiàng)的配置,這時候會使用默認(rèn)配置。

  • 預(yù)設(shè)的資源過濾(resource filtering:maven-resources-plugin)

  • 預(yù)設(shè)的 plugin 配置(exec plugin, Git commit ID, and shade:exec-maven-plugin、maven-git-commit-id-plugin、maven-shade-plugin)

  • 預(yù)設(shè)的資源文件過濾,application.propertiesapplication.yml等,還包括特定配置文件(例如:application-dev.propertiesapplication-dev.yml

1、通過繼承 Starter Parent 來使用spring boot

  在 pom.xml 中設(shè)置 parent 即可:

<!-- Inherit defaults from Spring Boot -->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.5.RELEASE</version>
</parent>

   如果想要設(shè)定依賴包的版本,可以覆蓋掉,例如,將 spring-data-releasetrain 設(shè)置為 Fowler-SR2

<properties>
    <spring-data-releasetrain.version>Fowler-SR2</spring-data-releasetrain.version>
</properties>

   至于有哪些依賴,springboot v2.1.5.RELEASE 可以參考這里:https://github.com/spring-projects/spring-boot/tree/v2.1.5.RELEASE/spring-boot-project/spring-boot-dependencies/pom.xml

2、不通過 Parent Pom 來使用 spring boot

  通過繼承 spring-boot-starter-parent 來使用 spring boot 很方便,基本上不再需要自己聲明相關(guān)的 jar 依賴。當(dāng)然,如果開發(fā)項(xiàng)目時有內(nèi)部的規(guī)定或者約束來指定其他的(比如內(nèi)部的)標(biāo)準(zhǔn) parent,或者更愿意顯示指定依賴的話,也可以不繼承 spring-boot-starter-parent。

  不繼承使用 spring-boot-starter-parent 時,如果還想利用 springboot 提供的 dependency management (不是 plugin management),可以通過配置 scope=import 的依賴來進(jìn)行管理;如下:

<dependencyManagement>
    <dependencies>
        <dependency>
            <!-- Import dependency management from Spring Boot -->
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.1.5.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

   上面的例子同樣會在幫你引入默認(rèn)的版本配置,如果還是需要顯式指定其他的 jar 依賴版本,需要在 spring-boot-dependencies 配置之前添加,比如,這里想指定 spring-data-releasetrain 的版本為 Fowler-SR2 ,需要進(jìn)行如下配置:

<dependencyManagement>
    <dependencies>
        <!-- Override Spring Data release train provided by Spring Boot -->
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-releasetrain</artifactId>
            <version>Fowler-SR2</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.1.5.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

   注:上面的例子中,我們只是指定了 BOM (Bills of Materials),任何依賴配置可以被覆蓋重寫。

3、使用Spring Boot Maven Plugin 插件來生成可執(zhí)行的 jar 包

  springboot 包含一個 maven 插件用于將工程打包成一個可執(zhí)行的 jar 包(an executable jar),只需要在 pom.xml<plugins> 中添加如下配置即可

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

   注:使用 Spring Boot starter parent pom 時,只需要加入上面的配置即可打包可執(zhí)行的 jar 包。

三、關(guān)于 Starters

  Starters(啟動器)是比較方便的一組依賴關(guān)系描述符,開發(fā)者可以將其包含在應(yīng)用程序中。通過 Starters 可以獲得 Spring 全家桶及相關(guān)技術(shù)的一站式服務(wù),而不必自己進(jìn)行依賴管理。例如,如果想入手使用 Spring 和 JPA 進(jìn)行數(shù)據(jù)庫訪問,在項(xiàng)目中包含 spring-boot-starter-data-jpa 依賴項(xiàng)即可。

  打個比方,Starters 就類似于一臺完整的臺式機(jī),把常見的 spring 應(yīng)用所需要的相關(guān) jar 包進(jìn)行了匯總維護(hù),開箱即用,而不需要我們一個組件一個組件辛苦地找,比如CPU、內(nèi)存條、硬盤、顯卡等等,而且各個型號都要對上,類似于找各種 jar 包,然后版本號也要對上,然后再組裝成完整的臺式機(jī)來用,我們只需要使用 Starters 這個組裝好的臺式機(jī),這些依賴項(xiàng)就都加進(jìn)來了,就能快速啟動和運(yùn)行項(xiàng)目。同樣,組裝好的臺式機(jī)是有預(yù)設(shè)的配置的,但是如果想要修改臺式機(jī)中某項(xiàng)配置,也是可以直接更換的,但是型號(版本)要對得上才行,不過不管怎樣,還是推薦原廠默認(rèn)配置。

  題外:關(guān)于 Starters 的命名,spring 官方提供的都是類似于 spring-boot-starter-*,* 一般表示特定的應(yīng)用,這種命名方式可以方便開發(fā)者找到相關(guān)的 starters。而對于第三方的 starters ,不建議使用 spring-boot 開頭,因?yàn)檫@是保留給 springboot 官方使用的,通常建議使用工程名稱開頭,比如有個第三方 starters 工程名稱為 thirdpartyproject,則通常使用 thirdpartyproject-spring-boot-starter 作為 starters 的名稱。

  至于 springboot 提供了哪些 starters

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多