配置文件如果直接寫在resources目錄下,并且以application開頭巍糯,則會自動被識別為spring boot的配置文件吠昭,圖標(biāo)會變化。如果寫在別的目錄饺律,如resources/conf/下面窃页,則是普通的文件圖標(biāo)。
如果配置文件是application-模塊名.properties复濒,spring boot會把“模塊名”認(rèn)為是profile脖卖,而“模塊名”這些profile是不被spring boot認(rèn)可的,需要手動在application.properties指定:spring.profiles.active=mybatis,redis,sms
spring boot自動識別的配置文件巧颈,即使不配置@PropertySource畦木,也會被掃描、注入
在生產(chǎn)環(huán)境要引用外部文件砸泛,如果用外部文件系統(tǒng):
- 用配置中心
- 用profile十籍,不過感覺profile不實用蛆封,代碼里不可能有生產(chǎn)環(huán)境的配置。
- 在spring boot jar運(yùn)行的目前下面妓雾,把配置文件當(dāng)前目錄下的/config目錄或當(dāng)前目錄
- 如果配置文件都在resources下面娶吞,可以在啟動spring boot的時候加 -Dspring.config.location=E:/conf/垒迂,注意要把所有的配置文件都存在于E:/conf/下面械姻。 代碼里直接用classpath:就行,不需要寫file:机断。
spring.config.location指定的路徑一定要以/結(jié)尾楷拳,否則讀取的是classpath下的文件,并不會讀取到外部配置文件吏奸。 - 如果配置文件不是直接放在resources下面欢揖,如放在resources/conf下面,那么可以在
@PropertySource(value = {"classpath:/conf/application-sms.properties", "file:${config_path}/application-sms.properties"}, ignoreResourceNotFound = true)
后面的file:會覆蓋前面的classpath:下面的配置奋蔚。