国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Maven管理SpringBoot Profile

wenzi / 1151人閱讀

摘要:的配置文件默認(rèn)為或,此外僅以配置為說(shuō)明。的由的標(biāo)簽管理。管理由于構(gòu)建是基于或,此處僅以說(shuō)明。管理分五步,以下詳細(xì)介紹。并且為表示,會(huì)將文件內(nèi)容的替換為相應(yīng)的變量如文件中的會(huì)替換為屬性值。

1. Spring Profile

Spring可使用Profile決定程序在不同環(huán)境下執(zhí)行情況,包含配置、加載Bean、依賴等。
Spring的Profile一般項(xiàng)目包含:dev(開(kāi)發(fā)), test(單元測(cè)試), qa(集成測(cè)試), prod(生產(chǎn)環(huán)境)。由spring.profiles.active屬性決定啟用的profile。
SpringBoot的配置文件默認(rèn)為 application.properties(或yaml,此外僅以properties配置為說(shuō)明)。不同Profile下的配置文件由application-{profile}.properties管理,同時(shí)獨(dú)立的 Profile配置文件會(huì)覆蓋默認(rèn)文件下的屬性。

2. Maven Profile

Maven同樣也有Profile設(shè)置,可在構(gòu)建過(guò)程中針對(duì)不同的Profile環(huán)境執(zhí)行不同的操作,包含配置、依賴、行為等。
Maven的Profile由 pom.xml 的標(biāo)簽管理。每個(gè)Profile中可設(shè)置:id(唯一標(biāo)識(shí)), properties(配置屬性), activation(自動(dòng)觸發(fā)的邏輯條件), dependencies(依賴)等。
此文章不對(duì)Spring和Maven的Profile作過(guò)多說(shuō)明,詳細(xì)情況請(qǐng)自行查閱。

3. Maven 管理 Spring Profile

由于構(gòu)建是基于Maven(或Gradle,此處僅以Maven說(shuō)明)。所以使用Maven管理Spring構(gòu)建時(shí)的Profile是非常方便的。
Maven管理Spring Profile分五步,以下詳細(xì)介紹。

3.1 去掉默認(rèn)的 Tomcat依賴

在SpringBoot MVC項(xiàng)目中,默認(rèn)以內(nèi)嵌Tomcat運(yùn)行,如果需要特殊的設(shè)置或者使用Undertow,需要去掉默認(rèn)的Tomcat依賴:


    org.springframework.boot
    spring-boot-starter-web
    
        
            org.springframework.boot
            spring-boot-starter-tomcat
        
    

如果你同時(shí)使用了 MyBatis,需要去掉tomcat-jdbc依賴:


    org.mybatis.spring.boot
    mybatis-spring-boot-starter
    
        
            org.apache.tomcat
            tomcat-jdbc
        
    
3.2 Maven Profile設(shè)置

在項(xiàng)目(如果有模塊為具體模塊)的pom.xml下設(shè)置:



    
        dev
        
            true
        
        
            dev
        
        
            
                org.springframework.boot
                spring-boot-starter-tomcat
            
            
                org.apache.tomcat
                tomcat-jdbc
            
        
    
    
        prod
        
            prod
        
    

從上面的配置可以看出,Maven的Profile配置了兩個(gè):dev和prod,并且在dev中使用了內(nèi)嵌Tomcat,而 prod 中沒(méi)有,所以這兩個(gè)Profile打包的文件dev可以直接運(yùn)行(Plugin使用了SpringBoot Plugin),而prod并不能直接運(yùn)行(或部署在外部Tomcat下,并不推薦這樣,后面會(huì)說(shuō)明)。
properties中的profileActive是我們申明的屬性,此處對(duì)應(yīng)Spring的Profile值。

3.3 Maven資源過(guò)濾

SpringBoot的 Profile選擇需要在 application.properties中配置,如果定死在文件,那么每次打包都需要手動(dòng)修改,很麻煩,而且容易出錯(cuò)。
Maven的資源過(guò)濾功能可以實(shí)現(xiàn)在構(gòu)建時(shí)修改以“@xxx@”表示的屬性。資源過(guò)濾需要在pom.xml的標(biāo)簽下配置 resources:



    
        src/main/resources
        
            application*.properties
        
    
    
        src/main/resources
        
        true
        
            application.properties
            application-${profileActive}.properties
        
    

上面的第一個(gè)resource去掉了src/main/resources下的所有application*.properties文件,“*”是通配符,表示此處有任何內(nèi)容(沒(méi)有也可以)都匹配。
第二個(gè)resource添加了application.properties默認(rèn)配置文件和由profileActive屬性決定的相應(yīng)profile配置文件。并且filtering為true表示,會(huì)將文件內(nèi)容的“@xx@”替換為相應(yīng)的變量(如文件中的@profileActive@會(huì)替換為profileActive屬性值)。

3.4 Spring配置Profile

在application.properties默認(rèn)配置文件中配置:

spring.profiles.active              = @profileActive@

@profileActive@表示該屬性值會(huì)在maven構(gòu)建時(shí)被替換掉。

3.5 構(gòu)建

構(gòu)建命令:

mvn clean package -Pdev

上面的命令會(huì)根據(jù)Maven Profile的 dev構(gòu)建環(huán)境包,如果需要prod包,則把-P的參數(shù)替換成prod即可。
為了方便我會(huì)在每個(gè)項(xiàng)目下生成一個(gè)build.sh文件,內(nèi)容如下:

#!/bin/bash

profileActive=prod
if [ -n "$1" ]; then
    profileActive=$1
fi

mvn clean package -Dmaven.test.skip=true -P$profileActive

該腳本接收一個(gè)參數(shù),即打包對(duì)應(yīng)的Profile。默認(rèn)情況下如果不帶參數(shù),會(huì)打包prod環(huán)境包。
需要注意的是,該命令跳過(guò)了測(cè)試。

4. 總結(jié)

完成了上面的五步,即可使項(xiàng)目根據(jù)你的構(gòu)建參數(shù)的不同,打包出不同環(huán)境下運(yùn)行的包。

第1步去掉了SpringBoot內(nèi)嵌的tomcat和tomcat-jdbc。使得我們可以決定在什么情況下使用何種容器運(yùn)行我們的項(xiàng)目。

第2步配置了Maven構(gòu)建Porfile,使得構(gòu)建可根據(jù)我們的指令分發(fā)不同的包。

第3步配置了Maven資源過(guò)濾,不僅使得不同Profile下的資源文件互不可見(jiàn),且替換了資源文件中以“@xx@”表示的屬性值。

第4步使Spring的Profile由Maven決策,這樣,我們就不用每次打包都修改Spring的Profile配置了。

第5步展示了如何執(zhí)行不同Profile下的構(gòu)建命令,并且使用了一個(gè)Shell腳本方便我們執(zhí)行構(gòu)建和跳過(guò)測(cè)試(多數(shù)時(shí)候我們?cè)跇?gòu)建項(xiàng)目時(shí)先測(cè)試,并不需要在構(gòu)建時(shí)測(cè)試,測(cè)試和構(gòu)建的解耦使得我們更專注。但同時(shí),如果你忘記了前置測(cè)試,也可能會(huì)引發(fā)未察覺(jué)的測(cè)試問(wèn)題)。

5. 參考

[1]. http://blog.csdn.net/lihe2008...

[2]. http://blog.csdn.net/hguisu/a...

[3]. https://www.tianmaying.com/tu...

[4]. http://blog.csdn.net/james_wa...

[5]. http://www.jianshu.com/p/755a...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/67902.html

相關(guān)文章

  • SpringBoot統(tǒng)一配置中心

    摘要:創(chuàng)建統(tǒng)一服務(wù)項(xiàng)目可以使用來(lái)初始化項(xiàng)目,選擇自己的以來(lái)就好。動(dòng)態(tài)刷新配置目前如果我們修改了上的配置并不能馬上生效,需要我們的客戶端工程重啟才行,現(xiàn)在需要改造成自動(dòng)刷新。 一直使用springboot搭建后端項(xiàng)目,所有的配置都寫(xiě)到自己的resource目錄下,隨著微服務(wù)的項(xiàng)目越來(lái)越多,每個(gè)項(xiàng)目都需要自己的各種配置文件。而且后期一旦想要修改配置文件,就得重新發(fā)布一遍非常的麻煩,現(xiàn)在就來(lái)教教大...

    remcarpediem 評(píng)論0 收藏0
  • 使用 Docker 部署 Spring Boot項(xiàng)目

    摘要:項(xiàng)目上傳將項(xiàng)目上傳到華為云服務(wù)器,沒(méi)啥好說(shuō)的。環(huán)境搭建建議在環(huán)境下安裝,環(huán)境搭建比較復(fù)雜且容易出錯(cuò),使用來(lái)安裝環(huán)境很方便。使用部署項(xiàng)目將項(xiàng)目復(fù)制到服務(wù)器中,進(jìn)入項(xiàng)目路徑下進(jìn)行打包測(cè)試。 項(xiàng)目搭建 Spring Boot 項(xiàng)目代碼 @RestController public class SpringBootDockerApplication { public static vo...

    venmos 評(píng)論0 收藏0
  • 最渣的 Spring Boot 文章

    摘要:如刪除臨時(shí)文件,清除緩存信息,讀取配置文件信息,數(shù)據(jù)庫(kù)連接等。提供的接口也可以滿足該業(yè)務(wù)場(chǎng)景。不同點(diǎn)中方法的參數(shù)為,而接口中方法的參數(shù)為數(shù)組。 spring-boot-starter-parent Maven的用戶可以通過(guò)繼承spring-boot-starter-parent項(xiàng)目來(lái)獲得一些合理的默認(rèn)配置。這個(gè)parent提供了以下特性: 默認(rèn)使用Java 8 使用UTF-8編碼 一...

    yanest 評(píng)論0 收藏0
  • 一文掌握 Spring Boot Profiles

    摘要:需要注意的是必須要使用版本為以上才支持屬性。與格式文件不同,正對(duì)不同的,無(wú)法在一個(gè)文件設(shè)置,官方采用命名形式為格式來(lái)達(dá)成一樣的效果。采用方式添加的是屬于額外激活的,也就是說(shuō)覆蓋掉外部傳入的指定的。 showImg(https://segmentfault.com/img/remote/1460000019924197?w=1050&h=500); Spring Boot Profile...

    Eidesen 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<