Spring Boot配置application.yml及根據(jù)application.yml選擇啟動配置的操作方法
在Spring Boot 中可以選擇applicant.properties 作為配置文件,也可以通過在application.yml中進行配置,讓Spring Boot根據(jù)你的選擇進行加載啟動配置文件。
這種配置方式,我們通常在實際開發(fā)中經(jīng)常使用,主要為了發(fā)布版本和以及開發(fā)環(huán)境,本地環(huán)境,測試環(huán)境等不同環(huán)境使用不同的配置文件,這樣就減少了我們經(jīng)常去配置application.yml的相關具體配置,因為不同的配置文件里邊的ip地址或者數(shù)據(jù)庫的鏈接以及端口不同,干過開發(fā)的都知道,我們一般會將數(shù)據(jù)庫的訪問地址,賬號,密碼,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;
//瀏覽器根據(jù)地址訪問得到相關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.comSpring Boot 2.4 以后的配置
好,有了上邊對application.yml的相關基礎,接下來我們在一個application.yml進行相關配置,然后根據(jù)相關配置啟動我們需要的配置文件,然后得到我們想要的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開頭的數(shù)據(jù)。

這是在瀏覽器打印的結(jié)果,在控制臺我們也可以看到相關打印的結(jié)果:

同理,我們也可以利用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,根據(jù)application.yml選擇啟動配置的文章就介紹到這了,更多相關Spring Boot配置 application.yml內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
SpringBoot實現(xiàn)文件斷點續(xù)傳功能詳解
在處理大文件傳輸或網(wǎng)絡不穩(wěn)定的情況下,文件斷點續(xù)傳功能顯得尤為重要,本文將詳細介紹如何使用Spring Boot實現(xiàn)文件的斷點續(xù)傳功能,需要的可以了解下2025-04-04
java并發(fā)編程包JUC線程同步CyclicBarrier語法示例
這篇文章主要為大家介紹了java并發(fā)編程工具包JUC線程同步CyclicBarrier語法使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-03-03
SpringBoot處理大量請求數(shù)據(jù)的傳輸問題的方法小結(jié)
在Spring?Boot項目常常需要中處理大量請求數(shù)據(jù)的傳輸問題,這篇文章主要為大家整理了一些常用的方法,感興趣的小伙伴可以跟隨小編一起學習一下2024-01-01
Spring整合CXF webservice restful實例詳解
這篇文章主要為大家詳細介紹了Spring整合CXF webservice restful的實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-08-08
基于Spring Boot的Environment源碼理解實現(xiàn)分散配置詳解
這篇文章主要給大家介紹了基于Spring Boot的Environment源碼理解實現(xiàn)分散配置的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2018-08-08

