Spring Boot配置application.yml及根據application.yml選擇啟動配置的操作方法
在Spring Boot 中可以選擇applicant.properties 作為配置文件,也可以通過在application.yml中進行配置,讓Spring Boot根據你的選擇進行加載啟動配置文件。
這種配置方式,我們通常在實際開發(fā)中經常使用,主要為了發(fā)布版本和以及開發(fā)環(huán)境,本地環(huán)境,測試環(huán)境等不同環(huán)境使用不同的配置文件,這樣就減少了我們經常去配置application.yml的相關具體配置,因為不同的配置文件里邊的ip地址或者數據庫的鏈接以及端口不同,干過開發(fā)的都知道,我們一般會將數據庫的訪問地址,賬號,密碼,Redis的訪問地址等均放到application.yml文件中。
開始,我們在Spring Boot中創(chuàng)建一個啟動類文件
@SpringBootApplication public class Chapter12Application { public static void main(String[] args) { SpringApplication.run(Chapter12Application.class, args); } @RestController static class HelloController { //指定配置文件讀取name并獲得配置文件的值 @Value("${name:}") private String name; //瀏覽器根據地址訪問得到相關name @RequestMapping("/") public String index() { return name; } } }
創(chuàng)建一個application.yml文件存放到src/resources,目錄下:
# 默認激活dev配置,選擇啟動配置文件,實際上均采用active讀取 spring: profiles: active: "test" --- # 指定的配置文件 spring: config: activate: on-profile: "dev" # 讀取的name文件 name: dev.Miaow.Y.Hu.com #啟動端口號配置 server: port: 7745 --- spring: config: activate: on-profile: "test" name: test.Miaow.Y.Hu.com server: port: 7745 --- spring: config: activate: on-profile: "prod" server: port: 7745 name: prod.Miaow.Y.Hu.com
Spring Boot 2.4 以后的配置
好,有了上邊對application.yml的相關基礎,接下來我們在一個application.yml進行相關配置,然后根據相關配置啟動我們需要的配置文件,然后得到我們想要的name.
依舊是Spring Boot 的啟動文件
@SpringBootApplication public class Chapter13Application { public static void main(String[] args) { SpringApplication.run(Chapter13Application.class, args); } @Slf4j @RestController static class HelloController { @Value("${db:}") private String db; @Value("${mq:}") private String mq; @RequestMapping("/") public String index() { log.info("db:" + db); log.info("mq:" + mq); return db + "===" + mq; } } }
依舊是如此,我們可以在pom.xml先配置我們所需要的依賴:
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
接下來我們還是將重點放到我們的application.yml配置文件上:
# 2.4之前的配置 #spring: # profiles: # active: "dev" # #--- #spring.profiles: "dev" #spring.profiles.include: "dev-db,dev-mq" # #--- #spring.profiles: "dev-db" # #db: dev-db.Miaow.Y.Hu.com # #--- #spring.profiles: "dev-mq" # #mq: dev-mq.Miaow.Y.Hu.com # #--- #2.4之后的配置 # 默認激活dev配置 spring: profiles: # 更改指定的啟動配置文件 active: "dev" group: # 分組,只要你確定定義的別名滿足條件,那么就適配 "dev": "dev-db,dev-mq" "prod": "prod-db,prod-mq" --- spring: config: activate: on-profile: "dev-db" db: dev-db.Miaow.Y.Hu.com --- spring: config: activate: on-profile: "dev-mq" mq: dev-mq.Miaow.Y.Hu.com --- spring: config: activate: on-profile: "prod-db" db: prod-db.Miaow.Y.Hu.com --- spring: config: activate: on-profile: "prod-mq" mq: prod-mq.Miaow.Y.Hu.com
由于我并未配置具體的端口號,故而系統(tǒng)將采用默認的端口號8080啟動,其中我們通過端口號訪問得到,因為我們默認采用dev進行啟動,故而我們在瀏覽器上得到的就是dev開頭的數據。
這是在瀏覽器打印的結果,在控制臺我們也可以看到相關打印的結果:
同理,我們也可以利用application.yml的特性,來完成我們所需要的功能。
例如:
@RestController public class HelloController { @Value("${com.Miaow.Y.Hu.from}") public String from; @RequestMapping("/hello") public String index() { return "Hello World"; } @RequestMapping("/demo") public String didi(){ System.out.println(from); return from; } }
application.properties
com.Miaow.Y.Hu.from=miaow
到此這篇關于Spring Boot配置 application.yml,根據application.yml選擇啟動配置的文章就介紹到這了,更多相關Spring Boot配置 application.yml內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java Swing實現(xiàn)窗體添加背景圖片的2種方法詳解
這篇文章主要介紹了Java Swing實現(xiàn)窗體添加背景圖片的2種方法,結合實例形式較為詳細的分析了Swing實現(xiàn)窗體添加背景圖片的方法,并總結分析了Swing重繪中repaint與updateUI的區(qū)別,需要的朋友可以參考下2017-11-11Java使用抽象工廠模式實現(xiàn)的肯德基消費案例詳解
這篇文章主要介紹了Java使用抽象工廠模式實現(xiàn)的肯德基消費案例,較為詳細的分析了抽象工廠模式的定義、原理并結合實例形式分析了Java使用抽象工廠模式實現(xiàn)肯德基消費案例的步驟與相關操作技巧,需要的朋友可以參考下2018-05-05基于spring+hibernate+JQuery開發(fā)之電子相冊(附源碼下載)
本篇文章介紹了,基于spring+hibernate+JQuery開發(fā)之電子相冊(附源碼下載)。需要的朋友參考下2013-05-05SpringBoot中MyBatis使用自定義TypeHandler的實現(xiàn)
本文主要介紹了SpringBoot中MyBatis使用自定義TypeHandler,當默認的類型映射不能滿足需求時,自定義?TypeHandler?就非常有用,具有一定的參考價值,感興趣的可以了解一下2024-08-08Java EasyExcel讀寫excel如何解決poi讀取大文件內存溢出問題
這篇文章主要介紹了Java EasyExcel讀寫excel如何解決poi讀取大文件內存溢出問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06IntelliJ?IDEA?2022.2.1最新永久激活破解教程(持續(xù)更新)
這篇文章主要介紹了IntelliJ?IDEA?2022.2.1最新永久激活破解教程(持續(xù)更新),小編測試這種激活工具也適用idea2022以下所有版本,本篇教程整理的比較詳細,匯總了idea各個版本的激活工具,激活方法多種多樣,大家選擇一種即可,感興趣的朋友跟隨小編一起看看吧2022-09-09