国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

如何不重新編譯讓 Spring Boot 配置文件生效?

開發 前端
從 Spring Boot2.4 開始,我們也可以使用 ??spring.config.import?? 方法來導入配置文件,相比于 ??additional-location?? 配置,這個 import 導入更加靈活,可以導入任意名稱的配置文件。

今天聊一個小伙伴在星球上的提問:

圖片

問題不難,解決方案也有很多,因此我決定擼一篇文章和大家仔細說說這個問題。

1. 配置文件位置

首先小伙伴們要明白,Spring Boot 默認加載的配置文件是 application.properties 或者 application.yaml,默認的加載位置一共有五個,五個位置可以分為兩類:

從 classpath 下加載,這個又細分為兩種:

  • 直接讀取 classpath 下的配置文件,對應到 Spring Boot 項目中,就是 resources 目錄下的配置。
  • 讀取 classpath:/config/ 目錄下的文件,對應到 Spring Boot 項目中就是 resources/config 目錄下的配置。

這兩種情況如下圖:

圖片

從項目所在的當前目錄下加載,這個又細分為三種情況:

從項目當前目錄下加載配置文件。

從項目當前目錄下的 config 文件夾中加載配置文件。

從項目當前目錄下的 config 文件夾的子文件夾中加載(孫子文件夾不可以)。

這三種情況如下圖:

圖片

config 目錄下的配置文件可以被加載,config/a 目錄下的配置文件也可以被加載,但是 config/a/b 目錄下的配置文件不會被加載,因為不是直接子文件夾。

配置文件可以放在這么多不同的位置,如果同一個屬性在多個配置文件中都寫了,那么后面加載的配置會覆蓋掉前面的。例如在 classpath:application.yaml? 中設置項目端口號是 8080,在 項目當前目錄/config/a/application.yaml 中設置項目端口是 8081,那么最終的項目端口號就是 8081。

這是默認的文件位置。

如果你不想讓自己的配置文件叫 application.properties 或者 application.yaml,那么也可以自定義配置文件名稱,只需要在項目啟動的時候指定配置文件名即可,例如我想設置我的配置文件名為 app.yaml,那么我們可以在啟動 jar 包的時候按照如下方式配置,此時系統會自動去上面提到的五個位置查找對應的配置文件:

java -jar boot_config_file-0.0.1-SNAPSHOT.jar --spring.config.name=app

如果項目已經打成 jar 包啟動了,那么前面所說的目錄中,后三個中的項目當前目錄就是指 jar 包所在的目錄。

如果你不想去這五個位置查找,那么也可以在啟動 jar 包的時候明確指定配置文件的位置和名稱,如下:

java -jar boot_config_file-0.0.1-SNAPSHOT.jar --spring.config.locatinotallow=optional:classpath:/app.yaml

注意,我在 classpath 前面加上了 optional:? 表示如果這個配置文件不存在,則按照默認的方式啟動,而不會報錯說找不到這個配置文件。如果不加這個前綴,那么當系統找不到指定的配置文件時,就會拋出 ConfigDataLocationNotFoundException 異常,進而導致應用啟動失敗。

如果配置文件和 jar 包在相同的目錄結構下,如下圖:

圖片

那么啟動腳本如下:

java -jar boot_config_file-0.0.1-SNAPSHOT.jar --spring.config.locatinotallow=optional:javaboy/app.yaml

如果 spring.config.location 的配置,只是指定了目錄,那么必須以 / 結尾,例如上面這個啟動腳本,也可以按照如下方式啟動:

java -jar boot_config_file-0.0.1-SNAPSHOT.jar --spring.config.locatinotallow=optional:javaboy/ --spring.config.name=app

通過 spring.config.location 屬性鎖定配置文件的位置,通過 spring.config.name 屬性鎖定配置文件的文件名。

2. 額外位置

前面我們關于配置文件位置的設置,都是覆蓋掉已有的配置,如果不想覆蓋掉 Spring Boot 默認的配置文件查找策略,又想加入自己的,那么可以按照如下方式指定配置文件位置:

java -jar boot_config_file-0.0.1-SNAPSHOT.jar --spring.config.additional-locatinotallow=optional:javaboy/app.yaml

如果這個額外指定的配置文件和已有的配置文件有沖突,那么還是以后來者為準。

3. 位置通配符

有一種情況,假設我有 redis 和 mysql 的配置,我想將之放在兩個不同的文件夾中以便于管理,像下面這樣:

圖片

那么在項目啟動時,可以通過通配符 * 批量掃描相應的文件夾:

java -jar boot_config_file-0.0.1-SNAPSHOT.jar --spring.config.locatinotallow=optional:config/*/

使用通配符批量掃描 mysql 和 redis 目錄時,默認的加載順序是按照文件夾的字母排序,即先加載 mysql 目錄后加載 redis 目錄。

需要注意的是,通配符只能用在外部目錄中,不可以用在 classpath 中的目錄上。另外,包含了通配符的目錄,只能有一個通配符 *?,不可以有多個,并且還必須是以 */ 結尾,即一個目錄的最后部分可以不確定。

4. 導入外部配置

從 Spring Boot2.4 開始,我們也可以使用 spring.config.import? 方法來導入配置文件,相比于 additional-location 配置,這個 import 導入更加靈活,可以導入任意名稱的配置文件。

spring.config.import=optional:file:./dev.properties

甚至,這個 spring.config.import 還可以導入無擴展名的配置文件,例如我有一個配置文件,是 properties 格式的,但是這個這個配置文件沒有擴展名,現在我想將之作為 properties 格式的配置文件導入,方式如下:

spring.config.import=optional:file:/Users/sang/dev[.properties]

好啦,看完上面的內容,文章一開始的問題答案就不用我多說了吧~

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

2021-09-30 06:31:12

Spring Boot配置密碼

2024-04-23 14:13:38

開發配置文件

2010-03-02 09:59:03

Fedora Make

2009-06-17 14:10:30

Spring配置文件

2009-11-13 09:40:27

linux定時執行crontab

2022-06-23 08:42:08

配置加密解密

2011-03-21 13:35:29

PHPLAMPGD庫

2024-10-10 15:08:40

2025-01-26 00:00:40

微服務架構服務

2023-11-01 08:30:20

SpringYAML

2021-08-06 08:04:14

Spring Boot自動配置

2018-12-21 09:10:51

UbuntuLinux修復損壞

2017-03-23 09:29:06

2021-11-07 14:00:16

JekyllBashAPI后端

2018-02-28 13:45:47

LinuxUnixVim

2022-04-27 08:55:01

Spring外部化配置

2025-09-23 07:45:01

2019-11-22 10:00:53

ICC配置文件Windows 10

2010-01-13 16:34:57

VB.NET動態屬性

2011-01-13 16:27:26

Linux配置文件
點贊
收藏

51CTO技術棧公眾號

看女生喷水的网站在线观看| 99伊人成综合| 综合久久2019| 国产真实乱对白精彩久久| 高清亚洲成在人网站天堂| 日本不卡影院| 欧美精品欧美精品系列| 国产免费永久在线观看| 色综合一个色综合亚洲| 亚洲一本大道| 午夜精品国产更新| 91福利在线视频| 精品免费视频.| 成人短视频app| 美女扒开尿口让男人操亚洲视频网站| 天堂а√在线最新版中文在线| 亚洲精品自产拍| 新片速递亚洲合集欧美合集| xvideos亚洲人网站| 台湾色综合娱乐中文网| 国产精品视频26uuu| 99在线精品视频在线观看| 亚洲精品国产精品久久| 久久夜色精品国产欧美乱极品| 中文字幕大看焦在线看| 久久精品久久精品亚洲人| 国产精品99在线观看| 一本色道久久综合亚洲精品婷婷 | 国产精品劲爆视频| 免费成人小视频| 人人在线97| 日韩中文字幕在线| 欧美aaaa视频| 最新真实国产在线视频| 日韩欧美一级精品久久| 亚洲成aⅴ人片久久青草影院| 亚洲国产精品www| 午夜精品成人在线视频| 久久久久久亚洲精品美女| 自拍偷拍一区二区三区| 在线免费不卡电影| 亚洲片av在线| 欧美污视频网站| 在线视频cao| 亚洲欧美一区二区视频| 77777在线| 日韩在线免费观看视频| 日本系列欧美系列| 国产精品久久一区二区三区不卡 | 亚洲第一影院| 精品视频一区二区三区四区| 国产午夜亚洲精品不卡| 超薄肉色丝袜脚交一区二区| 茄子视频成人在线观看| 日韩精品一区二区三区四区视频 | 亚洲激情电影中文字幕| 亚洲国产91视频| 亚洲天堂偷拍| 精品国产一区二区在线| 免费精品国产| 日韩精品欧美一区二区三区| 日韩欧美视频一区二区三区| 亚洲午夜在线观看| 9191精品国产综合久久久久久| 色就是色亚洲色图| 欧美mv和日韩mv国产网站| 午夜日韩视频| 国产高清一区在线观看| 粉嫩av四季av绯色av第一区 | 一级毛片视频在线| 91亚洲精品久久久久久久久久久久| 激情欧美一区二区| 五月天色婷婷综合| 另类亚洲自拍| 成人a区在线观看| 成人短视频在线观看免费| 菠萝蜜视频在线观看一区| www成人免费观看网站| 精品国产成人av| eeuss鲁一区二区三区| 色噜噜狠狠狠综合曰曰曰| 午夜欧美精品久久久久久久| 永久免费网站视频在线观看| 欧美色播在线播放| 免费观看视频www| 成人免费不卡视频| 小说区图片区图片区另类灬| 激情五月综合网| 欧美日韩不卡视频| 女海盗2成人h版中文字幕| 欧美日韩黄色一区二区| 永久在线免费观看| 欧美特级www| 亚洲精品三区| 日本免费高清一区二区| 艳妇臀荡乳欲伦亚洲一区| 亚洲精品一区二区三区中文字幕| 亚洲综合日韩中文字幕v在线| 成人av网站免费| 国产一区精品| 成人免费视频网址| 91亚洲精品一区二区乱码| 91高清在线观看视频| 国语自产精品视频在线看一大j8 | 九九热在线精品视频| 在线日韩中文| 日韩精品麻豆| 欧美一区在线视频| 欧美少妇另类| 97成人超碰免| 国产福利91精品一区| 嫩草在线视频| 91精品视频在线| 亚洲乱码中文字幕| 免费看久久久| 手机视频在线观看| 一本色道久久88精品综合| 亚洲一区一卡| 国产精品视频二区三区| 91久久久久久久久| 亚洲九九爱视频| 久久草在线视频| 成人手机在线电影| 2018日韩中文字幕| 国产精品免费av| 久久久久高潮毛片免费全部播放| 极品美女扒开粉嫩小泬| 亚洲午夜精品久久久久久性色| 国产在线精品一区在线观看麻豆| а√天堂中文在线资源8| 亚洲精品9999| 亚洲毛片一区二区| 成人a区在线观看| 涩涩屋成人免费视频软件| 亚洲黄色小视频在线观看| 午夜伦理精品一区| 亚洲靠逼com| 综合久久婷婷| 国产一区久久精品| 四虎精品欧美一区二区免费| 中文字幕日韩欧美在线视频| 久久精品亚洲麻豆av一区二区 | 草b视频在线观看| 久久国产精品久久久久久久久久| 久久久久久久久久久黄色| 美女一区2区| 深夜爽爽视频| 99久久精品免费看国产四区| 欧美一级片免费看| 青青草原综合久久大伊人精品优势| av日韩国产| 日韩中文字幕在线视频观看| 91大神在线播放精品| 欧美日韩一区免费| 日本成人在线不卡视频| 国产亚洲精彩久久| va中文字幕| 久久久com| 中文字幕在线看视频国产欧美在线看完整 | 久久99国产乱子伦精品免费| 欧美magnet| 日批视频在线免费看| 青青草一区二区| 在线看不卡av| 久久成人麻豆午夜电影| 欧美经典影片视频网站| 香蕉国产在线| 亚洲小视频在线播放| 91国产精品视频在线| 欧美偷拍一区二区| 丰满白嫩尤物一区二区| 成人精品天堂一区二区三区| 91麻豆国产福利在线观看宅福利| 国产真人做爰毛片视频直播| 国产福利精品在线| 精品国产乱码久久久久久久久| 久久久国产一区二区三区四区小说| 欧美3p视频| 日本一区二区三区视频在线| 天堂аⅴ在线最新版在线| 在线观看欧美一区| 日韩av电影在线网| 亚洲国产精品福利| ●精品国产综合乱码久久久久| 最新日韩欧美| 精品一区二区三区中文字幕在线| 你懂的在线观看视频网站| 男人天堂a在线| 成人av片网址| 久久久久久久久久国产精品| 欧美一区二区在线视频| 中文字幕在线观看一区二区| 日本视频一区二区三区| 少妇精品久久久| 国产不卡网站| 黄网站在线观看| 少妇一级淫免费播放| 亚洲电影免费| 91在线直播亚洲| 欧美激情影音先锋|