SpringBoot中配置文件及切換方式
SpringBoot配置文件及切換
介紹
(1)SpringBoot常用application.properties和application.yml作為配置文件,在不切換配置文件的情況下,兩者同時(shí)生效,但application.properties優(yōu)先級(jí)較高,如
person.name=wsh person.age=11
person: age: 18
@Component
public class Person {
@Value("${person.name}")
private String name;
@Value("${person.age}")
private int age;
public Person() {
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return age == person.age &&
Objects.equals(name, person.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
}
切換配置文件
(1)一般情況下,有測(cè)試環(huán)境和生產(chǎn)環(huán)境下的配置文件,如

(2)切換配置文件,則原有的application.properties和application.yml生效,切換的配置文件也生效,相同名字的配置會(huì)覆蓋application.properties和application.yml中的配置
spring.profiles.active=test
springboot切換配置文件application-dev sit uat pro
省流
在application.yml文件中配置 spring.profiles.active=dev,springboot就會(huì)去找application-dev.yml
正文
公司里經(jīng)常會(huì)碰到多個(gè)環(huán)境,通常會(huì)準(zhǔn)備多個(gè)配置文件,而不是在同一個(gè)配置文件里改來(lái)改去。
以springboot項(xiàng)目為例,我們會(huì)準(zhǔn)備這些配置文件:
application-dev.yml application-sit.yml application-uat.yml application-pro.yml application.yml
在application.yml添加如下配置
spring:
profiles:
active: dev
# 此處dev可以換成sit,uat,pro
# application.yml也可以換成application.properties文件,則是 spring.profiles.active=dev這是springboot提供的application-{profile}.properties或者application-{profile}.yml
將花括號(hào)替換成你自定義的后綴。
springboot會(huì)先獲取application.yml的配置,通過(guò)application.yml里的配置,去獲取application-dev.yml的內(nèi)容。
這樣的話,就可以將共同的配置放在application.yml
另外兩種方式
1.啟動(dòng)類中添加
//在啟動(dòng)類中,將原本的
SpringApplication.run(Application.class, args);
//替換成如下
SpringApplicationBuilder builder=new SpringApplicationBuilder(Application.class);
builder.application().setAdditionalProfiles("dev");
builder.run(args);代碼如下:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplicationBuilder builder = new SpringApplicationBuilder(Application.class);
builder.application().setAdditionalProfiles("dev");
builder.run(args);
}
}2.啟動(dòng)jar包時(shí)通過(guò)命令行
java -jar xxx.jar --spring.profiles.active=pro
在機(jī)器上部署的時(shí)候可以使用這種方式。
開(kāi)發(fā)的時(shí)候可以使用application.yml或者bootstrap.yml配置文件的方式
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解elasticsearch之metric聚合實(shí)現(xiàn)示例
這篇文章主要為大家介紹了elasticsearch之metric聚合實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01
Java寬化基本類型轉(zhuǎn)換與精度丟失詳解(為什么long可以自動(dòng)轉(zhuǎn)float)
java中l(wèi)ong到float的轉(zhuǎn)換屬于自動(dòng)類型轉(zhuǎn)換,因?yàn)閒loat的范圍比long更大,這篇文章主要介紹了Java寬化基本類型轉(zhuǎn)換與精度丟失的相關(guān)資料,詳細(xì)介紹了為什么long可以自動(dòng)轉(zhuǎn)float,需要的朋友可以參考下2026-05-05
如何為Spring Cloud Gateway加上全局過(guò)濾器
這篇文章主要介紹了如何為Spring Cloud Gateway加上全局過(guò)濾器,幫助大家更好得理解和學(xué)習(xí)使用Gateway,感興趣的朋友可以了解下2021-03-03
使用JMX連接JVM實(shí)現(xiàn)過(guò)程詳解
這篇文章主要介紹了使用JMX連接JVM實(shí)現(xiàn)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
java實(shí)現(xiàn)靜默加載Class示例代碼
這篇文章主要給大家介紹了關(guān)于java實(shí)現(xiàn)靜默加載Class的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-10-10
在idea環(huán)境下構(gòu)建springCloud項(xiàng)目
本篇文章主要介紹了在idea環(huán)境下構(gòu)建springCloud項(xiàng)目,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11
Java實(shí)現(xiàn)注冊(cè)登錄與郵箱發(fā)送賬號(hào)驗(yàn)證激活功能
這篇文章主要介紹了Java實(shí)現(xiàn)注冊(cè)登錄與郵箱發(fā)送賬號(hào)驗(yàn)證激活功能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2022-12-12
新手了解java 類,對(duì)象以及封裝基礎(chǔ)知識(shí)
JS是一門面向?qū)ο笳Z(yǔ)言,其對(duì)象是用prototype屬性來(lái)模擬的,本文介紹了如何封裝JS對(duì)象,具有一定的參考價(jià)值,下面跟著小編一起來(lái)看下吧,希望對(duì)你有所幫助2021-07-07
Java使用釘釘創(chuàng)建企業(yè)內(nèi)部機(jī)器人的實(shí)現(xiàn)
釘釘?shù)某霈F(xiàn)為企業(yè)節(jié)約了大量人力成本,其中也開(kāi)放了大量的外部api接口方便企業(yè)使用。本文主要介紹了Java使用釘釘創(chuàng)建企業(yè)內(nèi)部機(jī)器人的實(shí)現(xiàn),感興趣的可以了解一下2021-11-11

