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

多個(gè)springboot項(xiàng)目如何使用一個(gè)外部共同的application.yml

 更新時(shí)間:2024年05月07日 16:06:13   作者:LLZYHHH  
這篇文章主要介紹了多個(gè)springboot項(xiàng)目如何使用一個(gè)外部共同的application.yml問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

多個(gè)springboot項(xiàng)目使用一個(gè)外部共同的application.yml

本來(lái)application.yml是放在spring boot項(xiàng)目的resource中。

但是實(shí)際使用中,多個(gè)項(xiàng)目共同使用一個(gè)application.yml文件,所以就把a(bǔ)pplication.yml配置文件放到了tomcat下,項(xiàng)目啟動(dòng)的時(shí)候指向tomcat就行

代碼如下:

public class MyEnvironmentPostProcessor implements EnvironmentPostProcessor {
    @Override
    public void postProcessEnvironment(ConfigurableEnvironment environment, SpringApplication application) {
        //tomcat路徑
        String property = System.getProperty("catalina.home");
        String path = property + File.separator + "conf" + File.separator + "application.yml";
        //Springboot讀取yml配置
        YamlPropertiesFactoryBean yaml = new YamlPropertiesFactoryBean();
        yaml.setResources(new FileSystemResource(path));
        MutablePropertySources propertySources = environment.getPropertySources();
        propertySources.addFirst(new PropertiesPropertySource("Config", yaml.getObject()));
    }
}

在resources下創(chuàng)建META-INF文件夾,然后創(chuàng)建spring.factories文件,代碼為

org.springframework.boot.env.EnvironmentPostProcessor=com.**.**.config.MyEnvironmentPostProcessor

路徑自定義,不要放到根目錄下。

以上配置即可多個(gè)項(xiàng)目使用同一個(gè)配置文件啟動(dòng)。

springboot application.yml的一些加載規(guī)則

SpringBoot是Java后端開(kāi)發(fā)必須掌握的技術(shù)棧,而application.yml文件作為SpringBoot的核心配置,我們有必要去搞清楚約定的規(guī)則,提高開(kāi)發(fā)效率。

1.application.yml與application.properties加載順序問(wèn)題

當(dāng)src/main/resources目錄下同時(shí)存在application.yml和application.properties的時(shí)候,兩個(gè)配置文件中的內(nèi)容都會(huì)被加載。

加載順序是:

  • 1.application.yml
  • 2.application.properties

假設(shè)兩個(gè)配置文件中存在相同的配置,那么后加載的將會(huì)覆蓋掉先加載的,可以理解為Map的put操作。

PS:

該加載順序規(guī)則同樣適用于application-{profile}.yml和application-{profile}.yml,不過(guò)在項(xiàng)目實(shí)踐中不建議將yml和properties混用,避免后期維護(hù)起來(lái)困難。

2.src/test/resources/application.yml與src/main/resources/application.yml加載順序問(wèn)題

通常在對(duì)SpringBoot應(yīng)用做單元測(cè)試時(shí),會(huì)在src/test/resources目錄下的新增application.yml,因?yàn)闇y(cè)試的配置往往和應(yīng)用的配置存在差異。

當(dāng)@SpringBootTest注解標(biāo)注的類(lèi)啟動(dòng)Spring上下文時(shí)會(huì)先加載src/main/resources/application.yml,然后加載src/test/resources目錄下的application.yml,當(dāng)key相同時(shí)后加載的配置將覆蓋先加載的配置。

3.多環(huán)境下的application.yml加載問(wèn)題

兩種方式:

  • 單一application.yml配置方式
spring:
  profiles:
    active: local # 啟動(dòng)哪個(gè)環(huán)境的配置,---用來(lái)設(shè)置便捷

---
spring:
  config:
    activate:
      on-profile: local
server:
  port: 8080

---
spring:
  config:
    activate:
      on-profile: product
server:
  port: 8081

---
spring:
  config:
    activate:
      on-profile:  test
server:
  port: 808
  • 多配置文件方式

顯然將多個(gè)環(huán)境的配置放在同一份配置文件中,隨著后期配置項(xiàng)的不斷增加,整個(gè)配置文件的會(huì)顯得非常臃腫,而且本地配置文件和生產(chǎn)配置文件差異可能也較大,后期不同開(kāi)發(fā)人員維護(hù)起來(lái)也比較痛苦。

一個(gè)好的辦法是將一個(gè)配置文件拆分成多個(gè)配置文件,通過(guò)這種方式,每個(gè)配置文件中寫(xiě)自己的配置,主配置文件中寫(xiě)清楚用哪一個(gè)配置文件就好了,當(dāng)然如果有些配置項(xiàng)所有環(huán)境都一樣,也可以將這些配置都維護(hù)在主配置文件中。 

多環(huán)境配置文件的命名規(guī)則為:application-環(huán)境名.yml

### application.yml主配置文件
spring:
  profiles:
    active: dev 

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java中HashSet、LinkedHashSet和TreeSet區(qū)別詳解

    Java中HashSet、LinkedHashSet和TreeSet區(qū)別詳解

    這篇文章主要介紹了Java中HashSet、LinkedHashSet和TreeSet區(qū)別詳解,如果你需要一個(gè)訪(fǎng)問(wèn)快速的Set,你應(yīng)該使用HashSet,當(dāng)你需要一個(gè)排序的Set,你應(yīng)該使用TreeSet,當(dāng)你需要記錄下插入時(shí)的順序時(shí),你應(yīng)該使用LinedHashSet,需要的朋友可以參考下
    2023-09-09
  • SpringMVC記錄我遇到的坑_AOP注解無(wú)效,切面不執(zhí)行的解決

    SpringMVC記錄我遇到的坑_AOP注解無(wú)效,切面不執(zhí)行的解決

    這篇文章主要介紹了SpringMVC記錄我遇到的坑_AOP注解無(wú)效,切面不執(zhí)行的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 深入了解JVM字節(jié)碼增強(qiáng)技術(shù)

    深入了解JVM字節(jié)碼增強(qiáng)技術(shù)

    這篇文章主要介紹了深入了解JVM字節(jié)碼增強(qiáng)技術(shù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • HashMap鏈表與紅黑樹(shù)轉(zhuǎn)換詳解

    HashMap鏈表與紅黑樹(shù)轉(zhuǎn)換詳解

    這篇文章主要介紹了HashMap鏈表與紅黑樹(shù)轉(zhuǎn)換詳解,HashMap是Java中的一種數(shù)據(jù)結(jié)構(gòu),它實(shí)現(xiàn)了Map接口,提供了鍵值對(duì)的存儲(chǔ)和檢索功能,它基于哈希表的原理,通過(guò)將鍵映射到哈希表中的位置來(lái)存儲(chǔ)和獲取值,從而實(shí)現(xiàn)了快速的查找和插入操作,需要的朋友可以參考下
    2023-11-11
  • IDEA安裝部署Alibaba Cloud Toolkit的實(shí)現(xiàn)步驟

    IDEA安裝部署Alibaba Cloud Toolkit的實(shí)現(xiàn)步驟

    Alibaba Cloud Toolkit是阿里云針對(duì)IDE平臺(tái)為開(kāi)發(fā)者提供的一款插件,本文主要介紹了IDEA安裝部署Alibaba Cloud Toolkit的實(shí)現(xiàn)步驟,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-08-08
  • java操作solr實(shí)現(xiàn)查詢(xún)功能的實(shí)例

    java操作solr實(shí)現(xiàn)查詢(xún)功能的實(shí)例

    下面小編就為大家分享一篇java操作solr實(shí)現(xiàn)查詢(xún)功能的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11
  • java服務(wù)自動(dòng)停止原因查找方式

    java服務(wù)自動(dòng)停止原因查找方式

    這篇文章主要介紹了java服務(wù)自動(dòng)停止原因查找方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Java實(shí)現(xiàn)圖書(shū)館借閱系統(tǒng)

    Java實(shí)現(xiàn)圖書(shū)館借閱系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)圖書(shū)館借閱系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Mac安裝Maven的幾種方法小結(jié)

    Mac安裝Maven的幾種方法小結(jié)

    本文主要介紹了Mac安裝Maven的幾種方法小結(jié),主要包括通過(guò)Homebrew安裝Maven,通過(guò)SDKMAN安裝Maven和通過(guò)官方網(wǎng)站下載安裝包安裝Maven,感興趣的可以了解一下
    2024-01-01
  • java使用mybatis調(diào)用存儲(chǔ)過(guò)程返回一個(gè)游標(biāo)結(jié)果集方式

    java使用mybatis調(diào)用存儲(chǔ)過(guò)程返回一個(gè)游標(biāo)結(jié)果集方式

    這篇文章主要介紹了java使用mybatis調(diào)用存儲(chǔ)過(guò)程返回一個(gè)游標(biāo)結(jié)果集方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01

最新評(píng)論