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)類(lèi)中添加
//在啟動(dòng)類(lèi)中,將原本的 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)文章
java springmvc 注冊(cè)中央調(diào)度器代碼解析
這篇文章主要介紹了java springmvc 注冊(cè)中央調(diào)度器代碼解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08Java的優(yōu)先隊(duì)列PriorityQueue原理及實(shí)例分析
這篇文章主要介紹了Java的優(yōu)先隊(duì)列PriorityQueue原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12java 打印一字符串,并在main()方法內(nèi)調(diào)用它
編寫(xiě)一個(gè)方法(名字自定,但要符合Java編碼規(guī)范),方法內(nèi)打印一字符串,并在main()方法內(nèi)調(diào)用它。2017-02-02java數(shù)據(jù)類(lèi)型與變量的安全性介紹
這篇文章主要介紹了java數(shù)據(jù)類(lèi)型與變量的安全性介紹,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-07-07解決maven中只有Lifecycle而Dependencies和Plugins消失的問(wèn)題
這篇文章主要介紹了maven中只有Lifecycle而Dependencies和Plugins消失的問(wèn)題及解決方法,本文通過(guò)圖文的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2020-07-07Java 實(shí)現(xiàn)Redis存儲(chǔ)復(fù)雜json格式數(shù)據(jù)并返回給前端
這篇文章主要介紹了Java 實(shí)現(xiàn)Redis存儲(chǔ)復(fù)雜json格式數(shù)據(jù)并返回給前端操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07SpringBoot如何讀取war包jar包和Resource資源
這篇文章主要介紹了SpringBoot如何讀取war包jar包和Resource資源,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01