最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

本來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后端開發(fā)必須掌握的技術(shù)棧,而application.yml文件作為SpringBoot的核心配置,我們有必要去搞清楚約定的規(guī)則,提高開發(fā)效率。

1.application.yml與application.properties加載順序問題

當(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,不過在項(xiàng)目實(shí)踐中不建議將yml和properties混用,避免后期維護(hù)起來困難。

2.src/test/resources/application.yml與src/main/resources/application.yml加載順序問題

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

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

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

兩種方式:

  • 單一application.yml配置方式
spring:
  profiles:
    active: local # 啟動(dòng)哪個(gè)環(huán)境的配置,---用來設(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)配置文件差異可能也較大,后期不同開發(fā)人員維護(hù)起來也比較痛苦。

一個(gè)好的辦法是將一個(gè)配置文件拆分成多個(gè)配置文件,通過這種方式,每個(gè)配置文件中寫自己的配置,主配置文件中寫清楚用哪一個(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)文章

  • SpringBoot+ MySQL多線程查詢與聯(lián)表查詢性能對(duì)比

    SpringBoot+ MySQL多線程查詢與聯(lián)表查詢性能對(duì)比

    本文主要介紹了SpringBoot+ MySQL多線程查詢與聯(lián)表查詢性能對(duì)比,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-05-05
  • Java項(xiàng)目開發(fā)中最容易犯的10個(gè)錯(cuò)誤與解決

    Java項(xiàng)目開發(fā)中最容易犯的10個(gè)錯(cuò)誤與解決

    作為 Java 開發(fā),我們?cè)趯懘a的過程中難免會(huì)產(chǎn)生各種奇思妙想的 bug ,有些 bug 就挺讓人無奈的,下面小編就和大家詳細(xì)介紹一下如何避免吧
    2026-03-03
  • Java實(shí)現(xiàn)JDK動(dòng)態(tài)代理的原理詳解

    Java實(shí)現(xiàn)JDK動(dòng)態(tài)代理的原理詳解

    這篇文章主要介紹了Java實(shí)現(xiàn)JDK動(dòng)態(tài)代理的原理詳解,Java常用的動(dòng)態(tài)代理模式有JDK動(dòng)態(tài)代理,也有cglib動(dòng)態(tài)代理,本文重點(diǎn)講解JDK的動(dòng)態(tài)代理,需要的小伙伴可以參考一下的相關(guān)資料
    2022-07-07
  • java能寫爬蟲程序嗎

    java能寫爬蟲程序嗎

    在本篇文章里小編給大家整理的是一篇關(guān)于java是否能寫爬蟲程序的一篇文章,對(duì)此有興趣的朋友們可以學(xué)習(xí)下。
    2021-01-01
  • Springboot actuator應(yīng)用后臺(tái)監(jiān)控實(shí)現(xiàn)

    Springboot actuator應(yīng)用后臺(tái)監(jiān)控實(shí)現(xiàn)

    這篇文章主要介紹了Springboot actuator應(yīng)用后臺(tái)監(jiān)控實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Spring?Boot?3.2.5集成mysql的詳細(xì)步驟記錄

    Spring?Boot?3.2.5集成mysql的詳細(xì)步驟記錄

    作為一名Java開發(fā)者,我們經(jīng)常需要在我們的應(yīng)用程序中使用數(shù)據(jù)庫,在Spring Boot中集成數(shù)據(jù)庫是非常容易的,下面這篇文章主要給大家介紹了關(guān)于Spring?Boot?3.2.5集成mysql的詳細(xì)步驟,需要的朋友可以參考下
    2024-04-04
  • SQL子查詢與MyBatis映射過程

    SQL子查詢與MyBatis映射過程

    本文介紹了使用SQL別名、MyBatis字段映射及代碼復(fù)用優(yōu)化SQL片段的完整案例,通過子查詢將統(tǒng)計(jì)邏輯封裝化,減少數(shù)據(jù)庫交互次數(shù),提高性能,字段映射確保數(shù)據(jù)庫字段與Java屬性一致,處理命名差異,SQL代碼復(fù)用統(tǒng)一管理公共字段,只需一處修改
    2026-04-04
  • Java避免死鎖_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java避免死鎖_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    在有些情況下死鎖是可以避免的。本文將展示三種用于避免死鎖的技術(shù)。對(duì)java避免死鎖的相關(guān)知識(shí)感興趣的朋友一起通過本文學(xué)習(xí)吧
    2017-06-06
  • 基于Java回顧之集合的總結(jié)概述

    基于Java回顧之集合的總結(jié)概述

    在這篇文章里,我們關(guān)注Java中的集合(Collection)。集合是編程語言中基礎(chǔ)的一部分,Java自JDK早期,就引入了Java Collection Framework。設(shè)計(jì)JCF的那個(gè)人,后來還寫了一本書,叫《Effective Java》
    2013-05-05
  • MyBatis無縫轉(zhuǎn)MyBatis-plus的基本使用

    MyBatis無縫轉(zhuǎn)MyBatis-plus的基本使用

    本文介紹了使用MyBatis-plus來優(yōu)化MyBatis的使用,包括引入依賴、改造Mapper、實(shí)體類注解使用、Service層方法改造等,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-10-10

最新評(píng)論

罗源县| 静海县| 峨边| 沂源县| 莎车县| 太仓市| 安福县| 龙门县| 黔南| 房产| 涟水县| 沂南县| 惠东县| 炎陵县| 富阳市| 宁武县| 方正县| 密云县| 高台县| 岫岩| 乌拉特前旗| 桃园市| 宜阳县| 贵港市| 武宁县| 瑞安市| 田阳县| 长春市| 崇左市| 新竹市| 德江县| 枝江市| 疏附县| 霍山县| 武清区| 定远县| 科技| 盈江县| 涿鹿县| 丘北县| 依兰县|