<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
一般情況下,springboot預設會在resource目錄下生成一個組態檔(application.properties或application.yaml),但其實springboot允許設定多個組態檔(application.properties或application.yaml),但是這並不意味著這些組態檔一定會替換預設生成的組態檔,它們是互補的存在。如果在某些場景下需要把組態檔單獨拿出來並且啟動的時候載入進去,那麼外部的組態檔將是一個很好的選擇。
需要注意的是組態檔載入順序載入順序在springboot 2.4.0前後是不一樣的。
springboot 2.4.0及其之前版本的組態檔載入順序
file:./config/
file:./config/*/
file:./
classpath:config/
classpath:
springboot 2.4.0之後版本的組態檔載入順序
file:./config/*/
file:./config/
file:./
classpath:config/
classpath:
區別在於springboot 2.4.0之後的版本將file:./config/*/的在順序調整為第一載入順序。
file是指當前jar包所在路徑。
classpath是指springboot resource資料夾下路徑。
新建一個springboot專案
啟動類如下:
@SpringBootApplication public class MqApplication { public static void main(String[] args) { ConfigurableApplicationContext applicationContext = SpringApplication.run(MqApplication.class, args); ConfigurableEnvironment environment = applicationContext.getEnvironment(); String property = environment.getProperty("spring.application.name"); System.out.println("current spring.application.name="+property); } }
組態檔:
spring.application.name=classpath
server.port=8080
為了驗證 springboot 2.4.0之前和之後的版本載入順序的不一樣,會使用兩個版本對比。
對比版本:springboot 2.4.3 和 springboot 2.3.5.RELEASE
下面是不同路徑下設定不同埠和應用名以便驗證。
路徑 | 埠號 | application.name |
---|---|---|
file:./config/*/ | 8084 | file:./config/*/ |
file:./config/ | 8083 | file:./config/ |
file:./ | 8082 | file:./ |
classpath:config/ | 8081 | classpath:config/ |
classpath: | 8080 | classpath: |
根據上述表格,將組態檔分別複製到不同的路徑下建立組態檔並按表格修改spring.application.name和server.port屬性值。
啟動專案,下面是兩個版本的啟動資訊:
從兩張圖中可以得出結論:
修改組態檔:
classpath:組態檔
刪除spring.application.name屬性,增加server.error.path屬性
server.port=8080
server.error.path=/test
file:./組態檔
新增server.servlet.context-path屬性
spring.application.name=file:.
server.port=8082
server.servlet.context-path=file_context
file:./config/*/組態檔
保持不變
server.port=8084
spring.application.name=file:./config/*/
修改啟動類main方法在控制檯列印server.error.path
public static void main(String[] args) { ConfigurableApplicationContext applicationContext = SpringApplication.run(MqApplication.class, args); ConfigurableEnvironment environment = applicationContext.getEnvironment(); String property = environment.getProperty("spring.application.name"); System.out.println("current spring.application.name="+property); String errorPath = environment.getProperty("server.error.path"); System.out.println("errorPath="+errorPath); }
啟動專案
從上面截圖中可以發現三個組態檔中的所有屬性都被載入出來了,而且優先順序高的組態檔中的屬性會覆蓋優先順序低的組態檔中的屬性。
springboot中可以設定多個組態檔,並且這些組態檔是可以共存的。當屬性相同時,優先順序高的組態檔會覆蓋優先順序低的組態檔中的屬性;當屬性不同時,最終的設定會取各個組態檔中屬性的並集。
到此這篇關於SpringBoot詳細講解多個組態檔的設定流程的文章就介紹到這了,更多相關SpringBoot組態檔內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45