Spring Boot 配置文件
一,配置文件的用途
配置文件在Spring Boot項(xiàng)目中的地位是比較重要,其功能可主要?dú)w納為以下幾個(gè):
- 進(jìn)行配置程序?qū)傩?/strong>:配置文件允許設(shè)置應(yīng)用程序的各種屬性,如數(shù)據(jù)庫(kù)連接、端口號(hào)、日志級(jí)別、緩存配置等。通過(guò)配置文件,可以集中管理和修改這些屬性,而不需修改代碼。
- 進(jìn)行環(huán)境特定配置:配置文件可以根據(jù)不同的環(huán)境(如開(kāi)發(fā)、測(cè)試、生產(chǎn)環(huán)境)指定不同的配置,以滿足不同環(huán)境下的需求。通過(guò)切換不同的配置文件,應(yīng)用程序可以適應(yīng)不同的運(yùn)行環(huán)境。
- 進(jìn)行細(xì)粒度配置:配置文件可以提供細(xì)粒度的配置,允許逐個(gè)組件進(jìn)行配置,例如數(shù)據(jù)庫(kù)連接池、緩存配置、日志配置等。這樣每個(gè)組件可以根據(jù)自己的需求進(jìn)行個(gè)性化配置。
- 進(jìn)行外部化配置:配置文件使配置信息外部化,不需要硬編碼到應(yīng)用程序代碼中。這樣使得應(yīng)用程序更加靈活和可維護(hù),可以在不重新編譯應(yīng)用程序的情況下更改配置。
- 進(jìn)行密文配置:配置文件可以用于存儲(chǔ)敏感信息,如密碼或者API密鑰??梢酝ㄟ^(guò)加密或其他安全機(jī)制來(lái)保護(hù)這些敏感信息,確保配置文件的安全性。
二,配置文件的格式
2.1,配置文件格式介紹
Spring Boot 項(xiàng)目配置文件的格式有兩種,分別為:
1,Properties格式
用法:Properties格式使用鍵值對(duì)的方式進(jìn)行配置,每個(gè)配置項(xiàng)使用key=value
的格式??梢酝ㄟ^(guò).properties
文件擴(kuò)展名來(lái)標(biāo)識(shí)使用此格式的配置文件,例如application.properties
。在文件中,可以配置多個(gè)屬性,使用#作為注釋符號(hào)。
優(yōu)點(diǎn):Properties格式使用簡(jiǎn)單的鍵值對(duì),易于理解和書(shū)寫(xiě)。對(duì)于簡(jiǎn)單的配置需求,Properties格式足夠滿足要求。
缺點(diǎn):Properties格式缺乏層級(jí)結(jié)構(gòu)的表示能力,難以表達(dá)復(fù)雜配置。并且隨著配置項(xiàng)的增多,Properties格式的可讀性會(huì)變差。
示例:在配置文件中設(shè)置端口號(hào)和建立數(shù)據(jù)庫(kù)連接。
server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=root
spring.datasource.password=secret
2,YAML格式
用法:YAML格式以層級(jí)結(jié)構(gòu)的方式進(jìn)行配置,使用縮進(jìn)和冒號(hào)來(lái)表示層級(jí)關(guān)系??梢酝ㄟ^(guò).yml
或.yaml
文件擴(kuò)展名來(lái)標(biāo)識(shí)使用此格式的配置文件,例如application.yml
。在文件中,可以使用縮進(jìn)和冒號(hào)定義各級(jí)配置,注意冒號(hào)與值之間存在個(gè)空格。
優(yōu)點(diǎn):YAML格式支持層級(jí)結(jié)構(gòu),可以更好地表達(dá)復(fù)雜配置,如嵌套配置、列表、塊等。并且該格式采用縮進(jìn)的語(yǔ)法,易于閱讀和維護(hù)。
缺點(diǎn):YAML格式對(duì)縮進(jìn)和冒號(hào)的使用有嚴(yán)格的要求,如果沒(méi)有正確縮進(jìn)或冒號(hào)使用錯(cuò)誤可能導(dǎo)致配置解析問(wèn)題,需要一定的學(xué)習(xí)成本。
示例:在配置文件中設(shè)置端口號(hào)和建立數(shù)據(jù)庫(kù)連接。
server:
port: 8080
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydatabase
username: root
password: secret
總結(jié):Properties格式適合簡(jiǎn)單配置和快速編寫(xiě),而YAML格式則更適合復(fù)雜配置和可讀性強(qiáng)的情況。選擇哪種格式可以根據(jù)項(xiàng)目需求和個(gè)人偏好來(lái)決定。
系統(tǒng)配置項(xiàng)查看網(wǎng)址:Common Application Properties (spring.io)
2.2,文件格式特殊說(shuō)明
配置文件格式的特殊說(shuō)明
1,兩種配置文件是可以同時(shí)存在的,但是在企業(yè)中通常會(huì)規(guī)定項(xiàng)目使用這其中的一種格式作為項(xiàng)目配置文件的格式。
2,如果一個(gè)配置項(xiàng)在兩種配置文件中都進(jìn)行了設(shè)置,以 .properties
為后綴的配置文件為主。
3,.properties
配置文件的優(yōu)先級(jí)最高,但加載完.properties
配置文件之后,也會(huì)加載.yml
配置文件的配置信息。
三,配置文件的使用
3.1,讀取配置文件的內(nèi)容
在項(xiàng)目中,主動(dòng)的讀取配置文件中的內(nèi)容,可以使用 @Value
注解來(lái)實(shí)現(xiàn),@Value 注解使用"${}"
的格式讀取。
示例:讀取application.properties
配置文件中設(shè)置的端口號(hào)
1,application.properties
配置文件中設(shè)置的端口號(hào)信息:
2,編寫(xiě)讀取配置文件在的端口號(hào)代碼,示例代碼:
package com.example.springboot.component;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
@Component
public class ReadProperties {
@Value("${server.port}")
private String port;
@PostConstruct
public void doPostConstruct(){
System.out.println("server.port = " + port);
}
}
代碼說(shuō)明:@Component
注解:在 Spring Boot啟動(dòng)時(shí)候?qū)?code>ReadProperties類注入到框架中,@PostConstruct
注解:類注入到框架中時(shí)會(huì)執(zhí)行doPostConstruct
初始化方法,這個(gè)時(shí)候就能讀取到配置信息了。
3,運(yùn)行編寫(xiě)好的示例代碼,查看到如下運(yùn)行結(jié)果:
讀取配置文件的多種方式:SpringBoot 有幾種讀取配置文件的方法?
3.2,配置項(xiàng)加不加引號(hào)區(qū)別
1,不使用引號(hào)(裸值)
用法:在配置文件中,通常不需要使用引號(hào)將值括起來(lái)。這種情況下,值會(huì)被解析為相應(yīng)的數(shù)據(jù)類型,如字符串、整數(shù)、布爾值等。
使用環(huán)境:適用于不包含特殊字符的情況。
myapp.name=My Application
myapp.port=8080
myapp.enabled=true
2,單引號(hào)(‘’)
用法:?jiǎn)我?hào)可以用來(lái)保留配置值中的空格或特殊字符。其中的值將按照原樣進(jìn)行解析,包括空格。
使用環(huán)境:適用于需要保留空格、特殊字符或原始格式的配置值,如文件路徑、密碼或命令行參數(shù)。
myapp.name='My Application'
myapp.description='This is my "awesome" application.'
myapp.author='Traceless'
3,雙引號(hào)(“”)
用法:雙引號(hào)可以用于提供字符串類型的配置值。其中的值將進(jìn)行解析和處理,可以包含占位符或轉(zhuǎn)義字符。
使用環(huán)境:適用于需要進(jìn)行變量替換或使用轉(zhuǎn)義字符的配置值。
myapp.name="My Application"
myapp.description="This is my \"awesome\" application."
myapp.author="Traceless"
總結(jié):具體使用哪種引號(hào)取決于要實(shí)現(xiàn)的功能和期望的字符串處理方式。例如,如果需要對(duì)變量進(jìn)行替換或特殊字符轉(zhuǎn)義,雙引號(hào)是更適合的選擇。單引號(hào)則保持字符串的原樣,適用于需要保留特殊字符字面值的情況。。
3.3,設(shè)置不同環(huán)境的配置文件
在實(shí)際開(kāi)發(fā)中,一個(gè)項(xiàng)目存在多種不同環(huán)境的配置文件,例如開(kāi)發(fā)環(huán)境配置文件,測(cè)試環(huán)境配置文件,生產(chǎn)環(huán)境配置文件 …
Spring Boot 項(xiàng)目在不同平臺(tái)上的環(huán)境配置規(guī)則:
- 必須存在主配置文件,主配置文件名必須為
application.propertion
或者application.yml
。 - 每個(gè)平臺(tái)都存在一個(gè)專屬配置文件,配置文件名有要求,需遵循
application-xxx.propertion(.yml)
格式。
設(shè)置不同環(huán)境的配置文件示例:現(xiàn)有個(gè)項(xiàng)目,項(xiàng)目中存在開(kāi)發(fā)環(huán)境,測(cè)試環(huán)境,生產(chǎn)環(huán)境的配置文件,而每個(gè)配置文件端口號(hào)不同,現(xiàn)在需要進(jìn)行項(xiàng)目的測(cè)試操作,所以我們切換使用測(cè)試環(huán)境的配置文件。
1,項(xiàng)目主環(huán)境和各環(huán)境的配置文件配置如下:
2,項(xiàng)目啟動(dòng)檢測(cè)環(huán)境配置是否切換至測(cè)試生產(chǎn)環(huán)境,查看端口號(hào)為8888,說(shuō)明切換成功。
結(jié)語(yǔ)
這就是本期博客的全部?jī)?nèi)容啦!如果有什么其他的問(wèn)題無(wú)法自己解決,可以在評(píng)論區(qū)留言哦!
最后,如果你覺(jué)得這篇文章寫(xiě)的還不錯(cuò)的話或者有所收獲的話,麻煩小伙伴們動(dòng)動(dòng)你們的小手,給個(gè)三連唄(點(diǎn)贊??,評(píng)論?,收藏??),多多支持一下!各位的支持是我最大的動(dòng)力,后期不斷更新優(yōu)質(zhì)的內(nèi)容來(lái)幫助大家,一起進(jìn)步。那我們下期見(jiàn)!文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-603272.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-603272.html
到了這里,關(guān)于【框架篇】Spring Boot 配置文件(詳細(xì)教程)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!