日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux新建yaml文件,Spring Boot 装载自定义yml文件

發布時間:2025/3/15 linux 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux新建yaml文件,Spring Boot 装载自定义yml文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

yml格式的配置文件感覺很人性化,所以想把項目中的.properties都替換成.yml文件,蛋疼的是springboot自1.5以后就把@configurationProperties中的location參數去掉,各種查詢之后發現可以用YamlPropertySourceLoader去裝載yml文件,上代碼

public void onApplicationEvent(ApplicationEnvironmentPreparedEvent event) {

ResourceLoader loader = new DefaultResourceLoader();

YamlPropertySourceLoader yamlLoader = new YamlPropertySourceLoader();

List yamlFilePaths = new ArrayList<>();

while(true){

String yamlFilePath = environment.getProperty("load.yaml["+i+"]");

if(yamlFilePath==null){

break;

}

i++;

if("".equals(yamlFilePath)){

continue;

}

yamlFilePaths.add(yamlFilePath);

}

yamlFilePaths.forEach(filePath->{

try {

environment.getPropertySources().addLast(yamlLoader.load(filePath,loader.getResource(filePath),null));

} catch (IOException e) {

logger.error("load property file failed!file:" + filePath);

throw new RuntimeException(e);

}

});

}

這里主要實現了spring boot的ApplicationListener接口,spring boot為我們提供了四種監聽事件:

1.ApplicationStartedEvent? ? ? ? ? ? ? ? spring boot 剛啟動時會觸發事件

2.ApplicationEnvironemntPreparedEvent? ? spring boot 完成Environment的裝載但是還沒有開始applicationContext的裝載的時候觸發(它和實現了EnvironmentAware不一樣,后者時需要Bean被裝載進去后才調用)

3.ApplicationPreparedEvent? springboot 完成上下文的創建,單還沒有完全完成bean的裝載

4.ApplicationFailedEvent spring boot啟動異常時觸發。

spring boot內部本身就有很多listener,他們分別監聽上面幾種事件,這里就不再贅述,有興趣的同學可以研究一下spring boot的源碼。

Spring Boot 的詳細介紹:請點這里

Spring Boot 的下載地址:請點這里

總結

以上是生活随笔為你收集整理的Linux新建yaml文件,Spring Boot 装载自定义yml文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。