精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

說一個大家都知道的 Spring Boot 小細節!

開發 項目管理
resources 下的所有文件都會被打包到項目中,但是列出來的那三類,不僅會被打包進來,還會參與編譯。

小伙伴們知道,我們在創建 Spring Boot 項目的時候,默認都會有一個 parent,這個 parent 中幫我們定了項目的 JDK 版本、編碼格式、依賴版本、插件版本等各種常見內容,有的小伙伴可能看過 parent 的源碼,這個源碼里邊有這么一個配置:

<resources>
  <resource>
    <directory>${basedir}/src/main/resources</directory>
    <filtering>true</filtering>
    <includes>
      <include>**/application*.yml</include>
      <include>**/application*.yaml</include>
      <include>**/application*.properties</include>
    </includes>
  </resource>
  <resource>
    <directory>${basedir}/src/main/resources</directory>
    <excludes>
      <exclude>**/application*.yml</exclude>
      <exclude>**/application*.yaml</exclude>
      <exclude>**/application*.properties</exclude>
    </excludes>
  </resource>
</resources>

首先小伙伴們知道,這個配置文件的目的主要是為了描述在 maven 打包的時候要不要帶上這幾個配置文件,但是咋一看,又感覺上面這段配置似乎有點矛盾,松哥來和大家捋一捋就不覺得矛盾了:

  1. 先來看第一個 resource,directory 就是項目的 resources 目錄,includes 中就是我們三種格式的配置文件,另外還有一個 filtering 屬性為 true,這是啥意思呢?這其實是說我們在 maven 的 pom.xml 文件中定義的一些變量,可以在 includes 所列出的配置文件中進行引用,也就是說 includes 中列出來的文件,可以參與到項目的編譯中。
  2. 第二個 resource,沒有 filter,并且將這三個文件排除了,意思是項目在打包的過程中,除了這三類文件之外,其余文件直接拷貝到項目中,不會參與項目編譯。

總結一下就是 resources 下的所有文件都會被打包到項目中,但是列出來的那三類,不僅會被打包進來,還會參與編譯。

這下就清晰了,上面這段配置實際上并不矛盾。

那么在 properties 或者 yaml 中,該如何引用 maven 中的變量呢?

這塊原本的寫法是使用$ 符號來引用,但是,我們在配置文件中,往往用 $符號來引用當前配置文件的另外一個 key,所以,我們在 Spring Boot 的 parent 中,還會看到下面這行配置:

<properties>
  <java.version>17</java.version>
  <resource.delimiter>@</resource.delimiter>
  <maven.compiler.source>${java.version}</maven.compiler.source>
  <maven.compiler.target>${java.version}</maven.compiler.target>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>

這里的 <resource.delimiter>@</resource.delimiter> 就表示將資源引用的符號改為 @ 符號。也就是在 yaml 或者 properties 文件中,如果我們想引用 pom.xml 中定義的變量,就可以通過 @ 符號來引用。

松哥舉一個簡單的例子,假設我想在項目的 yaml 文件中配置當前項目的 Java 版本,那么我就可以像下面這樣寫:

app:
  java:
    version: @java.version@

這里的 @java.version@ 就表示引用了 pom.xml 中定義的 java.version 變量。

現在我們對項目進行編譯,編譯之后再打開 application.yaml,內容如下:

圖片

可以看到,引用的變量已經被替換了。

按照 Spring Boot parent 中默認的配置,application*.yaml、application*.yml 以及 application*.properties 文件中可以引用 pom.xml 中定義的變量,其他文件則不可以。如果其他文件也想引用,就要額外配置一下。

例如,想讓 txt 文件引用 pom.xml 中的變量,我們可以在 pom.xml 中做如下配置:

<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.txt</include>
            </includes>
            <filtering>true</filtering>
        </resource>
    </resources>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

include 所有的 txt 文件,并且設置 filtering 為 true(不設置默認為 false),然后我們就可以在 resources 目錄下的 txt 文件中引用 pom.xml 中的變量了,像下面這樣:

圖片

編譯之后,這本變量引用就會被替換成真正的值:

圖片

在 yaml 中引用 pom.xml 的配置,有一個非常經典的用法,就是多環境切換。

假設我們現在項目中有開發環境、測試環境以及生產環境,對應的配置文件分別是:

  • application-dev.yaml
  • application-test.yaml
  • application-prod.yaml

我們可以在 application.yaml 中指定具體使用哪個配置文件,像下面這樣:

spring:
  profiles:
    active: dev

這個表示使用開發環境的配置文件。

但是有時候我們的環境信息是配置在 pom.xml 中的,例如 pom.xml 中包含如下內容:

<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <package.environment>dev</package.environment>
        </properties>
        <!-- 是否默認 true表示默認-->
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
    </profile>
    <profile>
        <id>prod</id>
        <properties>
            <package.environment>prod</package.environment>
        </properties>
    </profile>
    <profile>
        <id>test</id>
        <properties>
            <package.environment>test</package.environment>
        </properties>
    </profile>
</profiles>

這里配置了三個環境,其中默認是 dev(activeByDefault)。那么我們在 application.yaml 中就可以使用 package.environment 來引用當前環境的名稱,而不用硬編碼。如下:

spring:
  profiles:
    active: @package.environment@

此時,我們通過 maven 命令對項目打包時,就可以指定當前環境的版本了,例如使用 test 環境,打包命令如下:

mvn package -Ptest

打包之后我們去看 application.yaml,就會發現里邊的環境已經是 test 了。

如果你使用的是 IDEA,則也可以手動勾選環境之后點擊打包按鈕,如下:

圖片

可以先勾選上面的環境信息,再點擊下面的打包。

好啦,一個小小知識點,因為有小伙伴在微信上問這個問題,就拿出來和大家分享下。

責任編輯:武曉燕 來源: 江南一點雨
相關推薦

2022-05-09 11:01:18

配置文件數據庫

2019-02-22 09:33:32

2018-12-19 09:15:36

SDN軟件定義網絡廣域網

2021-03-18 14:02:56

iOS蘋果細節

2020-12-17 08:56:51

單例模式JVM

2020-11-13 07:08:51

Spring Boot應用Spring

2014-03-26 10:59:14

Apache Spar

2021-12-22 09:25:14

小程序函數Python

2024-12-09 08:25:47

Springsave方法

2020-11-16 11:24:00

Spring AOP數據庫

2020-09-15 11:40:37

Spring Boot代碼Java

2021-05-07 07:59:52

WebFluxSpring5系統

2012-05-30 09:40:55

Linux鍋爐

2012-11-05 09:19:37

2020-04-20 17:43:28

Java代碼優化開發

2020-09-27 14:13:50

Spring BootJava框架

2022-06-06 08:42:04

spring-boo開發接口防盜刷

2017-03-21 21:17:50

大數據數據互聯網

2021-03-18 08:04:54

AQS工具CAS

2021-05-06 10:52:09

Java Spring Bo框架
點贊
收藏

51CTO技術棧公眾號

久久午夜无码鲁丝片| 性久久久久久久| 欧美日韩国产一区| 高清视频在线观看一区| 九色porny自拍视频| av黄色在线| 欧美色图一区| 成人网在线免费视频| 中文字幕欧美日韩精品| 日韩中文字幕在线免费| 在线观看色网站| 免费久久久久久久久| 亚洲高清免费视频| 亚洲欧美色图片| 在线观看福利一区| 美女黄页在线观看| 天天躁日日躁狠狠躁欧美巨大小说| 136国产福利精品导航| 奇米一区二区三区四区久久| 中文视频在线观看| 污污在线观看| 国产大陆a不卡| 久久久精品影院| 杨幂毛片午夜性生毛片| 亚洲区小说区图片区| 亚洲性人人天天夜夜摸| 日韩一区二区三区高清免费看看| 亚洲乱码一区二区三区三上悠亚| 中文字幕av网站| 色琪琪久久se色| 欧美精品久久99久久在免费线| 亚洲一卡二卡区| 中文字幕在线网站| 夜夜精品视频| 亚洲毛片在线观看| 俄罗斯女人裸体性做爰| 亚洲夜夜综合| 国产目拍亚洲精品99久久精品| 国产精品成人国产乱一区| 国产一级久久久久毛片精品| 国产v综合v| 国产精品视频yy9299一区| 国产精品高清免费在线观看| 日本天堂在线视频| 国产成人1区| 欧美日韩免费高清一区色橹橹| 久久视频这里有精品| 欧美成人免费| 老司机精品视频导航| 久久国产精品视频| 亚洲av成人无码一二三在线观看| 色在线免费观看| 中文av字幕一区| 91免费看网站| 亚洲天堂视频网站| 久久成人综合| 中文字幕亚洲综合| 国产农村妇女精品一区| 日韩成人18| 大荫蒂欧美视频另类xxxx| 免费在线观看91| 中文在线免费看视频| 日韩精品欧美精品| 久久夜色精品亚洲噜噜国产mv| 人妻激情偷乱频一区二区三区| 久久久久久久久久久久电影| 亚洲一区二区综合| 日本精品一区二区三区高清 久久| 亚洲一区二区天堂| 黄页视频在线91| 538国产精品一区二区免费视频| 成年人在线免费看片| 欧洲杯半决赛直播| 亚洲国产欧美一区二区三区久久| 成人性生生活性生交12| 国产深夜视频在线观看| 久久精品日产第一区二区三区高清版 | 国产91精品不卡视频| 日韩久久中文字幕| 免费观看在线综合色| 欧美日韩高清区| 无码人中文字幕| 亚洲深深色噜噜狠狠爱网站| 亚洲情综合五月天| 色婷婷狠狠18禁久久| 日韩制服诱惑| 欧美性xxxxx极品娇小| 真人做人试看60分钟免费| 欧美xxx.com| 中文字幕精品三区| 麻豆传媒网站在线观看| 咪咪网在线视频| 欧美日韩黄色影视| 中文字幕天堂av| 精品日韩欧美一区| 欧美另类xxx| 国产亚洲欧美在线精品| 国产综合精品| 久久躁日日躁aaaaxxxx| 欧美黄色一级网站| 亚洲欧美日韩高清在线| 午夜精品福利视频| 国产色无码精品视频国产| 精品日本12videosex| 久久综合久久美利坚合众国| 日韩三级一区二区三区| 好吊日精品视频| 国产成+人+综合+亚洲欧美丁香花| 日韩欧美亚洲视频| 日韩av中文字幕一区二区三区| 亚洲va久久久噜噜噜久久天堂| 一区二区三区在线免费观看视频| 国产大陆a不卡| 先锋在线资源一区二区三区| 免费资源在线观看| 亚洲黄色录像片| 人妻互换免费中文字幕| www在线观看播放免费视频日本| 国产精品私人影院| 久久99久久99精品| gratisvideos另类灌满| 亚洲成人一区二区在线观看| 国产喷水theporn| 天天综合91| 在线电影院国产精品| 激情综合激情五月| 美国一区二区| 亚洲精品黄网在线观看| 日韩欧美国产成人精品免费| 男女av一区三区二区色多| 青青久久aⅴ北条麻妃| 99国产精品一区二区三区| 国产成人免费在线观看| 亚洲欧美丝袜| 青青热久免费精品视频在线18| 日韩av综合中文字幕| 国产精品密蕾丝袜| 色999国产精品| 国产成人啪精品视频免费网| 四虎成人免费在线| 国产欧美一区二区精品婷婷| 欧美视频在线观看网站 | 亚洲资源在线看| 在线日本视频| 一区二区三区91| 免费在线a视频| 福利一区二区三区视频在线观看| 69精品人人人人| 欧美在线一级片| 欧洲杯足球赛直播| 日本午夜人人精品| 国产乱码一区二区| gogogo免费视频观看亚洲一| 国产日韩亚洲精品| 成人在线免费公开观看视频| 亚洲欧美日韩中文播放 | 一区二区黄色片| 亚洲一区日韩| 91久久久国产精品| 深爱五月激情五月| 国产精品视频yy9299一区| 五月婷婷狠狠操| 久久国产亚洲精品| 成人在线国产精品| 日韩在线免费看| 国产精品久久久久久妇女6080| 免费看欧美黑人毛片| 国产图片一区| 久久久精品一区二区| 国产又大又黄的视频| 亚洲精品国产精华液| 一级黄色电影片| 午夜一级久久| 亚洲欧美日本国产有色 | 亚洲欧美视频| 日本一区二区在线视频观看| 精品69视频一区二区三区| 精品久久久久久久久久久久久久久| 国产精品亚洲无码| 日本欧美大码aⅴ在线播放| 国产精品免费一区二区三区在线观看| 国产视频在线看| 午夜精品福利一区二区三区av| 艳妇乳肉亭妇荡乳av| 久久综合中文| 精品蜜桃一区二区三区| 污网站在线免费看| 日韩的一区二区| 这里只有精品6| 亚洲妇女屁股眼交7| 一级性生活毛片| 国内成人在线| 久久爱av电影| 人人超在线公开视频| 欧美高清你懂得| 国产午夜久久久| 国产经典欧美精品| 日本不卡在线观看视频| 97久久视频| 国产免费一区二区三区在线能观看| 日韩精品系列| 欧美剧情片在线观看| 四虎永久在线精品| 国产精品人妖ts系列视频| 催眠调教后宫乱淫校园| 日本免费新一区视频| www.亚洲视频.com| 久久久久国产精品| 成人黄色在线观看| 日本不卡1234视频| 美女视频久久黄| 成人在线视频成人| 日韩毛片在线看| 中文字幕一区在线播放| 亚洲精品国产视频| 五月婷婷婷婷婷| 91香蕉视频在线| 久久婷婷五月综合色国产香蕉| 天天操综合网| 亚洲最大激情中文字幕| 午夜av成人| 4k岛国日韩精品**专区| 美女精品导航| 久久国产精品99国产精| 8888四色奇米在线观看| 精品亚洲一区二区三区四区五区| www.蜜桃av.com| 午夜电影一区二区| 欧美成人免费观看视频| 国产成人免费在线视频| 国产一区二区在线观看免费视频| 97精品97| 午夜欧美性电影| 免费精品国产| 欧美一级日本a级v片| 日本一区福利在线| 国产精品视频99| 成人在线免费看片| 色老头一区二区三区| 国产视频一二三四区| 欧美日韩一区国产| 久久久夜色精品| 亚洲黄色免费电影| 麻豆国产尤物av尤物在线观看| 亚洲视频香蕉人妖| 国精品无码一区二区三区| 成人午夜av在线| 国产精品果冻传媒| 成人福利电影精品一区二区在线观看| 每日在线更新av| 日韩一级毛片| 亚洲国产日韩综合一区| 日本精品三区| 亚洲人成网站在线观看播放 | 亚洲精品720p| 天天舔天天干天天操| 日韩高清人体午夜| 免费资源在线观看| 中文日韩电影网站| 久草资源在线| 日韩av一区在线观看| 色婷婷av一区二区三| 国产手机视频精品| 搞黄视频免费在线观看| 日韩中文字幕av| 国产男男gay体育生白袜| 69堂国产成人免费视频| 国产成人三级在线播放 | 色婷婷**av毛片一区| 欧美精品电影| 亚洲精品成人网| 免费a级毛片在线观看| 国产一区二区三区在线播放免费观看 | www.色多多| 欧美国产日产图区| 动漫性做爰视频| 偷拍与自拍一区| 亚洲波多野结衣| 一区二区不卡在线播放 | 黄色的网站在线观看| 欧美高清视频免费观看| 国产黄在线播放| 久久国产精品久久久久久久久久| 不卡av免费观看| 国产精品爱久久久久久久| 97久久中文字幕| 国产999精品久久久| 色999久久久精品人人澡69| 99在线视频首页| 狂野欧美xxxx韩国少妇| 国产亚洲欧美一区二区| 成人精品中文字幕| 无码人妻精品一区二区蜜桃网站| 免费在线成人| 久久精品一卡二卡| 久久精品999| 插我舔内射18免费视频| 亚洲国产精品精华液2区45| av激情在线观看| 色婷婷久久99综合精品jk白丝| 国产91av视频| 欧美日韩成人综合天天影院| 国产综合视频在线| 日韩精品一区二区三区老鸭窝 | 欧美国产一区二区在线| 巨人精品**| 在线精品日韩| 首页亚洲欧美制服丝腿| 精品国产乱码久久久久夜深人妻| 国产欧美一区二区精品久导航 | 韩国一区二区在线观看| 国产精品揄拍100视频| 一区二区三区中文在线观看| 一级黄色在线观看| 在线亚洲+欧美+日本专区| 蜜臀99久久精品久久久久小说| 日韩欧美卡一卡二| 日本在线免费网| 操91在线视频| 日韩一级二级| 久久亚洲高清| 亚洲三级电影在线观看| 日本www在线视频| 国产一区二区三区精品视频| 被黑人猛躁10次高潮视频| 久久久www免费人成精品| 级毛片内射视频| 午夜精品福利久久久| 亚洲国产www| 亚洲成人a级网| 天堂av网在线| 欧美精品videossex88| 午夜影院一区| 国产精品一区二区久久| 九九久久婷婷| 黑人糟蹋人妻hd中文字幕| 男男成人高潮片免费网站| 短视频在线观看| 激情久久av一区av二区av三区 | 日韩电影中文字幕| a级大胆欧美人体大胆666| yy111111少妇影院日韩夜片| 91成人精品视频| 亚洲一二三不卡| 亚洲欧洲综合另类在线| 国产乱色精品成人免费视频| 日韩中文字幕在线免费观看| 另类一区二区| 亚洲视频小说| 狠狠色狠狠色合久久伊人| 久久嫩草捆绑紧缚| 亚洲精品精品亚洲| 国产后入清纯学生妹| 九九久久综合网站| 999国产精品一区| 欧美一级爽aaaaa大片| 免费精品视频| 一级黄色片网址| 欧美日韩dvd在线观看| 精品欧美色视频网站在线观看| 成人网在线免费观看| 欧美成人国产| 免费黄色一级网站| 国产精品色呦呦| 国产农村妇女毛片精品| 欧美情侣性视频| 日本欧美韩国国产| 青青草精品视频在线观看| 亚洲婷婷综合色高清在线| 亚洲国产精品二区| 97成人在线视频| 亚洲超碰在线观看| 青青草成人免费在线视频| 久久午夜色播影院免费高清| 91香蕉视频污在线观看| 欧美日韩视频在线| 二人午夜免费观看在线视频| 成人国产精品一区二区| 韩国自拍一区| 成人性生交大免费看| 欧美蜜桃一区二区三区| 欧洲中文在线| 欧美精品尤物在线| 黄色精品一二区| 国产情侣在线视频| 色婷婷综合久久久久| 波多野结衣一区二区三区免费视频| 凹凸国产熟女精品视频| 国产精品久久久久天堂| 高潮毛片7777777毛片| 国产999精品| 亚洲一级影院| 人妻互换一区二区激情偷拍| 亚洲福利影片在线| 国产精品亚洲成在人线| 国产九九九九九| 亚洲日本一区二区| 国模吧精品人体gogo| 日本高清+成人网在线观看| 91九色精品|