精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

欧美久久香蕉| 午夜激情小视频| 国产精品伦理久久久久久| 欧美视频在线一区| 一区二区三区欧美在线| 国产精品乱码一区二区| 欧美激情四色| 日韩高清有码在线| 无尽裸体动漫2d在线观看| 91极品在线| 91视频你懂的| 国产一区二区色| 亚洲国产精一区二区三区性色| 国产伦精品一区二区三区千人斩| 欧美裸体bbwbbwbbw| 丰满的少妇愉情hd高清果冻传媒| 国产尤物视频在线| 国产乱对白刺激视频不卡| 欧美在线精品免播放器视频| 99久久99久久精品国产| 天堂综合网久久| 欧美精品丝袜中出| 国内外成人激情视频| dy888亚洲精品一区二区三区| 91视频观看免费| 91欧美精品午夜性色福利在线| www.国产成人| 一级久久久久久| 欧美sss在线视频| 欧美群妇大交群中文字幕| 日本人体一区二区| 欧美极品视频| 久久久久久影视| 成人免费看吃奶视频网站| av资源免费观看| 中文字幕一区二区三三| 亚洲视频在线播放| 男人网站在线观看| 国产一区二区在线观| 色国产精品一区在线观看| 妞干网在线播放| 美女国产在线| 日本一区二区三区国色天香| 精品人伦一区二区三区| aaa一区二区| 毛片av一区二区三区| 欧美野外猛男的大粗鳮| 久久久久久久九九九九| 天天综合网91| 色综合影院在线| 久久久久亚洲av无码a片| 欧美色资源站| 亚洲第一黄色网| 国产成人av片| 欧美成年网站| 91精品国产综合久久久蜜臀粉嫩| 伊人影院综合在线| 成人免费黄色| 欧美高清激情brazzers| 色综合色综合色综合色综合| 国产一区一一区高清不卡| 色婷婷狠狠综合| 国产又大又硬又粗| 视频二区不卡| 欧美亚洲综合久久| 一区二区三区网址| 日韩精品第二页| 欧美日韩国产美女| 午夜xxxxx| 亚洲综合色婷婷在线观看| 欧美刺激午夜性久久久久久久| 红桃视频一区二区三区免费| 五月亚洲婷婷| 亚洲成人久久久久| 黄色片视频免费观看| 亚欧日韩另类中文欧美| 亚洲欧洲偷拍精品| 精品一区二区在线观看视频| 亚洲精品一二三区区别| 欧美激情第99页| 日本在线视频免费| 免费一区视频| 国产精品电影久久久久电影网| 中文字幕乱码人妻无码久久| 激情欧美一区二区三区在线观看| 99在线免费观看视频| 免费看黄色一级视频| 久久网站热最新地址| 日韩少妇中文字幕| 操你啦在线视频| 香蕉成人伊视频在线观看| av天堂永久资源网| 国产精品第一国产精品| 日韩精品在线网站| 国产精品无码一区二区三区| 99久久久久| 午夜精品一区二区三区在线视| 亚洲成人第一网站| 国产制服丝袜一区| 久久综合中文色婷婷| av网页在线| 亚洲成av人影院在线观看网| 黄色一级一级片| 日韩免费一级| 在线日韩中文字幕| 福利一区二区三区四区| 免费在线欧美视频| 国产视频一区二区不卡| 1769在线观看| 亚洲一区二区三区视频在线| 日韩肉感妇bbwbbwbbw| 天堂av一区| 丝袜亚洲欧美日韩综合| 久久免费精彩视频| 热久久一区二区| 国产日韩欧美一区二区| av网站在线播放| 欧美日韩亚洲精品一区二区三区| 国内自拍第二页| 香蕉一区二区| 欧美大片免费观看在线观看网站推荐| 国产一级片免费视频| 成人禁用看黄a在线| 亚洲视频在线二区| 欧美xxx网站| 亚洲精品一线二线三线无人区| 国精产品一区一区| 麻豆9191精品国产| 国产在线精品一区二区三区》| 三区四区在线视频| 色婷婷香蕉在线一区二区| 2一3sex性hd| 国产综合自拍| 91色在线观看| 色综合久久影院| 色噜噜偷拍精品综合在线| 妖精视频一区二区| 亚洲精品888| 成人网址在线观看| 在线免费观看黄| 色激情天天射综合网| 少妇大叫太粗太大爽一区二区| 国产伊人精品| 91久久精品www人人做人人爽| 91.xxx.高清在线| 欧洲一区在线观看| 一区二区三区久久久久| 西西人体一区二区| 久久艹中文字幕| 美女视频在线免费| 亚洲成人激情在线| 精品成人免费视频| 99久久精品免费看国产| 久久99久久久久久| 日韩欧美中文字幕在线视频| 欧美成人午夜影院| 性欧美videos另类hd| 亚洲欧洲制服丝袜| 国产5g成人5g天天爽| 欧美黄色录像片| 91精品啪aⅴ在线观看国产| 久草免费在线观看| 91精品国产入口在线| 看免费黄色录像| 国产高清不卡二三区| 免费在线黄网站| 超碰一区二区三区| 欧美一级淫片丝袜脚交| 免费在线一级视频| 欧美在线观看一区二区| 免费黄色在线网址| 国产乱子轮精品视频| 99热这里只有精品免费| 成人资源在线| 欧美做受高潮电影o| 国产对白叫床清晰在线播放| 欧美日韩一二三| 日本一级片免费| 国产成人午夜高潮毛片| 国产精品无码av在线播放| 小说区图片区色综合区| 国产精品久久久一区| 免费网站黄在线观看| 日韩免费性生活视频播放| 日本熟妇乱子伦xxxx| 久久九九久久九九| 日本精品一区在线| 亚洲成人直播| 日韩高清三级| 日本在线一区二区三区| 91精品国产成人| 成人不用播放器| 日韩亚洲欧美成人一区| 国产污污视频在线观看| 国产午夜精品一区二区三区四区| 激情图片中文字幕| 在线日韩欧美| 亚洲一区二区免费视频软件合集| 日韩精品成人在线观看| 欧美一级淫片aaaaaaa视频| 日本www在线| 日韩av综合中文字幕| 在线不卡免费视频| 亚洲成人综合在线| 91动漫免费网站| 成人av在线电影| 日本黄大片一区二区三区| 在线欧美日韩| 中文字幕欧美日韩一区二区三区| 国产精品毛片av| 国产欧美日韩高清| 午夜不卡影院| 色综合91久久精品中文字幕| 成人好色电影| 亚洲国产精品va在线看黑人| 一级爱爱免费视频| 日韩欧美在线观看视频| 看片网站在线观看| 国产精品不卡一区二区三区| 玖玖爱在线精品视频| 国产麻豆视频一区二区| 亚洲成色www.777999| 9久re热视频在线精品| 一区二区三区四区在线视频| 特黄特色欧美大片| 国产伦精品一区二区三区照片91| 久久天天久久| 国产成人精品视频| av色在线观看| 欧美黑人性猛交| 黄色一级片在线观看| 亚洲性生活视频| 香蕉av在线播放| 精品国产sm最大网站| 99国产精品久久久久久久成人| 色综合天天视频在线观看 | 只有精品亚洲| 国产精品久久av| 欧美大电影免费观看| 国模吧一区二区三区| 18+视频在线观看| 久久精品成人欧美大片| 95在线视频| 中文字幕日韩高清| 九色在线播放| 亚洲性69xxxbbb| 久香视频在线观看| 亚洲人成网7777777国产| 五月婷婷六月丁香| 日韩电影免费观看中文字幕| 丰满肉肉bbwwbbww| 精品粉嫩aⅴ一区二区三区四区| 99久久国产热无码精品免费| 制服丝袜亚洲播放| 国产一区二区波多野结衣| 欧美日韩国产精选| 亚洲最新av网站| 91精品国产综合久久精品麻豆| 一级日韩一级欧美| 欧美高清一级片在线| 国产乱子伦精品无码码专区| 91麻豆精品国产自产在线观看一区 | 一区精品在线播放| 久久久久人妻一区精品色| 中文字幕在线观看一区二区| 欧美性生交大片| 亚洲免费观看高清完整版在线观看 | 久久九九国产精品怡红院 | 一卡二卡三卡在线| 在线成人午夜影院| 亚洲av无码国产精品永久一区 | 97超碰免费在线观看| 国产丶欧美丶日本不卡视频| 亚洲精品成人无码毛片| 婷婷成人av| 麻豆国产欧美一区二区三区| 中日韩在线视频| 女人香蕉久久**毛片精品| 国产肉体ⅹxxx137大胆| 亚洲第一网站| 热久久精品免费视频| 国精品**一区二区三区在线蜜桃| 国产成人强伦免费视频网站| 成av人片一区二区| 精品中文字幕在线| 一级特黄录像免费播放全99| 高h调教冰块play男男双性文| 欧美日韩视频不卡| 99久久亚洲精品日本无码| 午夜精品福利一区二区三区av | 久久精品一区二区| 少妇太紧太爽又黄又硬又爽小说| 亚洲欧美自拍偷拍色图| 国产一级aa大片毛片| 色婷婷综合久久久中文一区二区| 在线观看黄色网| 精品久久久久av影院| 欧美婷婷久久五月精品三区| 久久久精品2019中文字幕神马| av剧情在线观看| 国产欧美日韩视频| 国产福利一区二区精品秒拍| 特级西西444www大精品视频| 黄色在线一区| 国产一级做a爰片久久| 国产成a人无v码亚洲福利| 一级片视频免费看| 亚洲激情自拍视频| 欧美国产一级片| 精品久久一区二区| 在线观看麻豆| 欧美亚洲成人网| 日韩三级网址| 亚洲一卡二卡三卡四卡无卡网站在线看| 狠狠色丁香久久综合频道| www.99av.com| 99re成人在线| 九九在线观看视频| 欧美色网一区二区| 天堂资源最新在线| 欧美成人性色生活仑片| 日韩高清在线| 久久99精品国产99久久| 欧美在线看片| 日韩一区二区三区不卡视频| 91天堂素人约啪| 国产在线欧美在线| 欧美精品在欧美一区二区少妇| 日本天堂影院在线视频| 欧美激情国产高清| 日韩免费一级| 青青草免费在线视频观看| 日本欧美在线观看| 3d动漫精品啪啪一区二区下载 | 日韩精品一级毛片在线播放| 欧美一区二区三区四区五区六区| 最新亚洲激情| 欧美极品jizzhd欧美仙踪林| 亚洲毛片av在线| 在线观看毛片av| 亚洲最大中文字幕| 韩日精品一区二区| 蜜桃免费一区二区三区| 亚洲精品在线二区| 怡红院一区二区| 亚洲国产精品天堂| 人妻精品一区一区三区蜜桃91| 欧美日韩高清在线观看| 亚洲不卡视频| 成人小视频在线观看免费| 国产呦精品一区二区三区网站 | 一区二区三区高清不卡| 国产欧美久久久精品免费| 日韩视频亚洲视频| 国产精品高清一区二区| 熟妇熟女乱妇乱女网站| 国产一区999| 麻豆精品一区二区三区视频| 日韩欧美精品在线| 美洲精品一卡2卡三卡4卡四卡| 国产精品av一区| 国产日产高清欧美一区二区三区| 国产高清成人久久| 欧美日韩另类在线| 国产一级免费在线观看| 国产精品亚洲第一区| 婷婷综合网站| 无码人妻一区二区三区精品视频| 亚洲国产va精品久久久不卡综合| 欧美熟妇乱码在线一区| 国产91精品久久久久久久| 精品国产乱码久久久久久1区2匹| 国产又大又黄又猛| 亚洲视频一区在线观看| 亚洲精品国偷拍自产在线观看蜜桃| 久久免费福利视频| 伊人久久大香线蕉av不卡| 久热精品在线播放| 自拍偷拍亚洲激情| 日韩中文字幕免费观看| 欧美做受高潮电影o| 91久久国产| 永久免费未满蜜桃| 色综合天天天天做夜夜夜夜做| 日本蜜桃在线观看| 成人xxxxx色| 免费在线亚洲欧美| 久艹在线观看视频| 亚洲国产欧美一区二区丝袜黑人| 欧美日一区二区三区| 影音先锋成人资源网站| 91麻豆免费观看| 国产一区二区三区中文字幕| 韩国视频理论视频久久| 欧美人妖在线| 国产吃瓜黑料一区二区| 91久久一区二区| 岛国片av在线| 亚洲精品中文字幕乱码三区不卡 | 欧洲中文字幕精品|