欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

spring boot裝載自定義yml文件

 更新時間:2017年04月14日 11:58:55   作者:在山的那邊  
這篇文章主要為大家詳細介紹了spring boot裝載自定義yml文件的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下

yml格式的配置文件感覺很人性化,所以想把項目中的.properties都替換成.yml文件,主要springboot自1.5以后就把@configurationProperties中的location參數(shù)去掉,各種查詢之后發(fā)現(xiàn)可以用YamlPropertySourceLoader去裝載yml文件,上代碼

 public void onApplicationEvent(ApplicationEnvironmentPreparedEvent event) {
     ResourceLoader loader = new DefaultResourceLoader();
     YamlPropertySourceLoader yamlLoader = new YamlPropertySourceLoader();
      List<String> 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);
      }

    });


  }

這里主要實現(xiàn)了spring boot的ApplicationListener<ApplicationEnvironmentPreparedEvent>接口,spring boot為我們提供了四種監(jiān)聽事件:

1.ApplicationStartedEvent    spring boot 剛啟動時會觸發(fā)事件

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

3.ApplicationPreparedEvent   springboot 完成上下文的創(chuàng)建,單還沒有完全完成bean的裝載

4.ApplicationFailedEvent   spring boot啟動異常時觸發(fā)。

spring boot內(nèi)部本身就有很多l(xiāng)istener,他們分別監(jiān)聽上面幾種事件,這里就不再贅述,有興趣的同學可以研究一下spring boot的源碼。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java for循環(huán)的妙用之雞兔同籠問題

    Java for循環(huán)的妙用之雞兔同籠問題

    這篇文章主要給大家介紹了關(guān)于Java for循環(huán)的妙用之雞兔同籠問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • java語言基礎(chǔ)之標識符和命名規(guī)則詳解

    java語言基礎(chǔ)之標識符和命名規(guī)則詳解

    這篇文章主要給大家介紹了關(guān)于java語言基礎(chǔ)之標識符和命名規(guī)則的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • 基于java高并發(fā)處理方案

    基于java高并發(fā)處理方案

    這篇文章主要介紹了基于java高并發(fā)處理方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Java?file類中renameTo方法操作實例

    Java?file類中renameTo方法操作實例

    renameTo()方法是File類的一部分,renameTo()函數(shù)用于將文件的抽象路徑名重命名為給定的路徑名??,下面這篇文章主要給大家介紹了關(guān)于Java?file類中renameTo方法操作的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • Java中判斷字符串是否相等的實現(xiàn)

    Java中判斷字符串是否相等的實現(xiàn)

    這篇文章主要介紹了Java中判斷字符串是否相等的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • mybatis如何批量更新list對象

    mybatis如何批量更新list對象

    這篇文章主要介紹了mybatis如何批量更新list對象問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Spring-Cloud-Function-Spel?漏洞環(huán)境搭建

    Spring-Cloud-Function-Spel?漏洞環(huán)境搭建

    這篇文章主要介紹了Spring-Cloud-Function-Spel?漏洞復現(xiàn)及搭建方法,搭建方法也很簡單,首先需要安裝maven jdk,具體安裝過程跟隨小編一起看看吧
    2022-03-03
  • @CacheEvict注解,清除緩存方式

    @CacheEvict注解,清除緩存方式

    這篇文章主要介紹了@CacheEvict注解,清除緩存方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Java 多線程之兩步掌握

    Java 多線程之兩步掌握

    Java 多線程編程 Java給多線程編程提供了內(nèi)置的支持。一條線程指的是進程中一個單一順序的控制流,一個進程中可以并發(fā)多個線程,每條線程并行執(zhí)行不同的任務
    2021-10-10
  • Java獲取XML節(jié)點總結(jié)之讀取XML文檔節(jié)點的方法

    Java獲取XML節(jié)點總結(jié)之讀取XML文檔節(jié)點的方法

    下面小編就為大家?guī)硪黄狫ava獲取XML節(jié)點總結(jié)之讀取XML文檔節(jié)點的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10

最新評論