Spring?Boot配置文件的語法規(guī)則詳解(properties和yml)
主要介紹兩種配置文件的語法和格式,properties和yml
1.配置文件的作用
對(duì)于配置文件,也有獨(dú)立的文件夾去存放,主要用來存放一些需要經(jīng)過變動(dòng)的數(shù)據(jù)(變量值);后續(xù)這些變量的值需要改變的話,直接在配置文件中修改值即可,就不需要一個(gè)個(gè)變量去修改了。
通常需要存放在配置文件中的數(shù)據(jù)
(1)項(xiàng)目的啟動(dòng)端口
(2)數(shù)據(jù)庫的連接信息(如:用戶名和密碼)
(3)第三方系統(tǒng)的調(diào)用密鑰等信息(如:驗(yàn)證當(dāng)前客戶端是否正確)
(4)用于發(fā)現(xiàn)和定位問題的普通日志和異常日志等
概念聽起來都很很迷糊,我們直接開始教學(xué)
2.創(chuàng)建配置文件
這個(gè)還需要教嗎?當(dāng)然需要。
(1)創(chuàng)建文件的位置

當(dāng)項(xiàng)目創(chuàng)建好之后,一般都會(huì)默認(rèn)存在application.properties這個(gè)配置文件,下面的application.yml是我后面創(chuàng)建的。
(2)創(chuàng)建文件的名字
名字是很固定的,必須是:application.properties或者application.yml,這兩個(gè)都是配置文件的格式,一般我們使用其中一個(gè)即可(一般yml使用的較多)。還有一種是application.yaml,這種其實(shí)是yml的縮寫,所以我們就不會(huì)多介紹了。
(3)當(dāng)項(xiàng)目中properties和yml都存在,并且里面的內(nèi)容沖突時(shí),會(huì)以properties中的為配置項(xiàng),也就是其優(yōu)先級(jí)更高
3.properties語法
首先,我們先認(rèn)識(shí)一下界面
雙擊點(diǎn)開:

我們就會(huì)來到這個(gè)頁面,就在這個(gè)頁面就行編寫配置內(nèi)容

(1)語法格式
通過上面我們可以看到,通過=連接。
語法規(guī)則:key和value之間通過=連接,key和key之間使用.連接
=左邊的就是key,=右邊的是value,在獲取配置文件時(shí),需要填入完整的key。
在配置文件中,使用#號(hào)進(jìn)行注釋
舉例
配置端口號(hào):有提示可以直接使用


這個(gè)有什么用呢?我們啟動(dòng)一下程序即可知道

配置數(shù)據(jù)庫相關(guān)信息:
spring.datasoure.url = jdbc:mysql://127.0.0.1:3306/testdb?characterEncoding=utf8&useSSL=false
spring.datasource.username=zhangsan
spring.datasource.password=123456

其中,key 和value我們都是可以自定義的。
上面介紹了如何配置文件內(nèi)容,接下來,就是要去代碼中獲取key對(duì)應(yīng)的值
(2)獲取配置文件
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/con")
@RestController
public class Controller {
//獲取端口號(hào)
@Value("${server.port}")
private String port;
@RequestMapping("/get")
public String getValue() {
return "port="+port;
}
}運(yùn)行結(jié)果:

原理:程序運(yùn)行之后,會(huì)將對(duì)應(yīng)的值存放在port中;發(fā)揮作用的是@Value注解,然后里面格式為:"${}",花括號(hào)內(nèi)就是路徑,也就是key。
也可以通過其他的注解獲?。ú恍枰柚鸀g覽器或者postman),我們在方法前面加上@PostConstruct注解,當(dāng)項(xiàng)目運(yùn)行起來后,就會(huì)默認(rèn)執(zhí)行該方法。
代碼:
//獲取url
@Value("${spring.datasoure.url}")
private String url;
@PostConstruct
public void get() {
System.out.println("================");
System.out.println("spring.datasoure.url"+url);
System.out.println("================");
}
運(yùn)行結(jié)果:

以上就是獲取配置文件的方法了。
(3).properties的缺點(diǎn)
為什么要介紹缺點(diǎn),那是為了方便介紹yml,更有對(duì)比性。
缺點(diǎn):存在很多的重復(fù)項(xiàng)

每寫一個(gè)配置項(xiàng),都需要重新寫一長串前綴,就會(huì)顯得很冗余。所以,我們需要再去學(xué)習(xí)yml
4.yml語法
(1)語法格式
格式:key: value (冒號(hào)后面有一個(gè)空格,不可以省略),如果多個(gè)key,也就是每個(gè)key中間由點(diǎn)好分割,在yml格式下就要改成冒號(hào)+換行分割

像上面的就是大致的寫法,冒號(hào)后面的空格一定不要忘。還有一點(diǎn)就是:其中null使用~表示,其他的類型比如整型和字符串,使用什么類型去接受,就可以自動(dòng)轉(zhuǎn)換成什么類型
(2)獲取配置文件
yml格式獲取配置文件和properties是一樣的
import jakarta.annotation.PostConstruct;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class YmlController {
@Value("${string.str1}")
private String str1;
@Value("${string.str2}")
private String str2;
@Value("${string.str3}")
private String str3;
@Value("${mykey}")
private String value;
@Value("${key.you.love}")
private String love;
@Value("${test}")
private int num;
@PostConstruct
public void getValue() {
System.out.println(value);
System.out.println("========================");
System.out.println(str1);
System.out.println(str2);
System.out.println(str3);
System.out.println("========================");
}
}一樣一樣的,文件的路徑也是一樣,都使用點(diǎn)號(hào)連接。但是yml在編寫的時(shí)候格式不同怎么獲取呢?下面教學(xué)。

只需要選中key,然后右鍵,然后復(fù)制到"${}"中即可。
(3)yml中的單雙引號(hào)的差異

打印結(jié)果:

一般雙引號(hào)里面的東西不會(huì)被被轉(zhuǎn)義,單引號(hào)里面的會(huì)被轉(zhuǎn)義,也就是\n在單引號(hào)下就只是一個(gè)串,在雙引號(hào)下是換行
(4)配置對(duì)象
上述是配置普通類型,下面介紹配置對(duì)象

獲取整個(gè)對(duì)象不能再使用@Value注解,而使用:@ConfigurationProperties


打印結(jié)果:

這就是獲取對(duì)象的方法
(5)獲取集合
獲取list

獲取set:

打印結(jié)果:


獲取map:

(6)yml優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
1.可讀性高,寫法簡單,易于理解
2.支持更多的數(shù)據(jù)類型,可以簡單表達(dá)對(duì)象
3.支持更多的編程語言
缺點(diǎn):不適合寫復(fù)雜的配置文件
以上就是全部語法內(nèi)容了。
5.配置文件格式
我們只需要修改成UTF-8編碼即可,也就是支持中文注釋

(1)配置當(dāng)前文件
在seting搜索欄中輸入:File encodings,然后出現(xiàn)下面的頁面


上述只是將當(dāng)前項(xiàng)目修改
(2)修改后續(xù)創(chuàng)建的所有項(xiàng)目

進(jìn)入后繼續(xù)搜索:File encodings

以上就是本節(jié)的全部內(nèi)容了。
到此這篇關(guān)于Spring Boot配置文件的語法規(guī)則的文章就介紹到這了,更多相關(guān)Spring Boot配置文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java仿Servlet生成驗(yàn)證碼實(shí)例詳解
這篇文章主要介紹了java仿Servlet生成驗(yàn)證碼實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-04-04
java web個(gè)人通訊錄系統(tǒng)設(shè)計(jì)
這篇文章主要為大家詳細(xì)介紹了java web個(gè)人通訊錄系統(tǒng)設(shè)計(jì),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01
Java SSL證書錯(cuò)誤:No subject alternative name
本文深入解析Java SSL證書錯(cuò)誤'No subject alternative names present'的解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2026-03-03
java8 對(duì)象轉(zhuǎn)Map時(shí)重復(fù) key Duplicate key xxxx的解決
這篇文章主要介紹了java8 對(duì)象轉(zhuǎn)Map時(shí)重復(fù) key Duplicate key xxxx的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09
springboot從application.properties中注入list,?map方式
這篇文章主要介紹了springboot從application.properties中注入list,map方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
SpringBoot配置文件中常用配置屬性詳解(application.properties/application.y
Spring Boot 的一大優(yōu)勢就是通過簡單的配置文件即可快速定制應(yīng)用行為,而無需編寫大量 XML 配置或 Java 代碼,下面我們就來看看application.properties和application.yml作為核心配置文件的常見屬性吧2025-07-07

