Spring Boot中的配置文件有兩種:properties格式和yml格式
一、propertise格式
- propertise格式是Springboot默認的配置文件的格式,它才有鍵值對key=value的方式存儲配置信息,有系統key值和自定義key值兩類。
- 系統key值就是Spring boot約定的一些key值,通過設置這些key對應的value值可以配置對應功能。比如:
servlet.port=8090
這條鍵值對就是設置servlet的端口號的。 - 自定義的key值就是可以自己設計一些key=value的鍵值對寫在配置文件中,不用聲明直接寫就行。比如:
student.id=10
student.name=zhangsan
這兩個就是我自定義的鍵值對,也可以寫在配置文件中。
- 默認情況下的properties是不支持中文的,因為他的字符集不是utf8,所以在注釋中寫中文時,會出錯。
需要再idea的設置里面,搜索encoding
將下方的兩個設置項都改成utf8.
二、yaml格式
也可以簡寫成yml,全稱是yet another mark language,另一種標記語言。
- 為什么有了propertise格式還要有yml格式?
propertise和yaml的關系就是新老版本之間的關系,propertise是java標準庫規(guī)定的配置文件,而yaml是一個跨語言的,多平臺可用的配置文件。
因為在實際工程中,通常一個項目不是由一個團隊做的,而是多個團隊共同開發(fā),一個團隊負責一個模塊的開發(fā),各個團隊使用的語言配置文件格式都不一樣,spring boot就是properties,最終一個項目可能有很多類型的配置文件,這對最終使用配置的運維團隊是不友好的,所以就出現了yml配置文件。
yaml的跨語言特性,大大的減輕了項目的最終使用者的配置難度。
- yaml的語法格式
yaml采用了一種類似于json的語法key: value.不同的是yaml的語法要求更加嚴格。-
key:后面必須加一個空格才能接著寫value。key: value,不能是key:value。
-
yaml的層級次序是通過行頭的tab個數多少形成的。比如在propertise中:
spring.datasource.username=root
在yaml中:
spring: datasource: username: root
-
- 在yaml里面表示字符串
有三種方法,單引號,雙引號和不加引號,都能表示字符串。
但是只有雙引號括起來的字符串中如果有轉義字符的話最終結果是轉義后的字符,單引號和不加引號都是所見即所得,寫啥就是啥。
三、獲取配置文件中的屬性和對象
- @Value注解(獲取配置文件中的屬性)
在配置文件中寫的鍵值對也是可以再項目代碼中獲取到的。-
@Value注解就是通過選擇key值從而獲取key值對應的value值的注解。
@Value("${student.name}") private String name;
注意:必須要將配置項的key值放在${}中才能獲取到對應的value值,如果不加 ${},如下:
@Value("student.name") private String name;
下方的name屬性就只會獲取到被傳的這個“student.name”這個字符串。文章來源:http://www.zghlxwxcb.cn/news/detail-706939.html
-
- @ConfigurationPropertise(獲取配置文件中的對象)
- 比如在配置文件中自定義了一個對象
propertise格式:
yaml格式:
都可以看做是一個對象,內部有一個name和age兩個屬性。可以從配置文件中直接獲取到這個對象。
- 要定義一個此對象的接受類。
- 類屬性名和對象屬性名對應。
- 將這個類添加到Spring容器中,作為Bean。
- 使用@ConfigurationPropertise注解,指定配置文件中的對象名。
- 要實現這個類的getter和setter函數
- 獲取到這個配置文件中的對象
使用@Autowired注入,和獲取普通的Bean對象一樣。
- 比如在配置文件中自定義了一個對象
四、Propertise VS yaml
- Propertise以key=value的形式配置文件,yaml以key:value的形式配置文件,層級之間使用換行縮進的方式配置,并且:后面必須加上空格才能寫value。
- Propertise是早期的默認的配置文件,但是配置存在一些冗余配置,使用yaml可以解決冗余問題。
- yaml支持更多的語言,通用性更好。
- yaml支持更多的數據類型。
五、常用配置項
- 在實際的開發(fā)環(huán)境中,一般都會有多個配置文件,這是因為每個配置文件,對應一個生產環(huán)境,而每個環(huán)境的資源端口號配置都是有變換的,所以需要有多個配置文件,為了方便,在yml中將配置文件可以分為主次,主配置文件指定本次運行要使用哪個配置文件 spring.profiles.active這個屬性配置使用哪個配置文件。
配置文件的名字都是由規(guī)范的,必須都是Application開頭,主配置文件的名字就是Application,次配置文件的名字Application-xxx,只有xxx可以自定義。
配置屬性的acitve的value值就是xxx
比如現在有這么多配置文件:
如果想讓Application-dev做最終的配置文件,就必須要在默認的配置文件中設置spring.profiles.active=dev。
此時九江dev配置文件給配置完成了。
其他的配置項文檔:Spring Boot配置項文檔文章來源地址http://www.zghlxwxcb.cn/news/detail-706939.html
到了這里,關于Spring Boot的配置文件的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!