Spring Boot擷取檔案總的來說有三種方式,分别是@Value注解,@ConfigurationProperties注解和Environment接口。這三種注解可以配合着@PropertySource來使用,@PropertySource主要是用來指定具體的配置檔案。
value():指定配置檔案
encoding():指定編碼,因為properties檔案的編碼預設是ios8859-1,讀取出來是亂碼
factory():自定義解析檔案類型,因為該注解預設隻會加載properties檔案,如果想要指定yml等其他格式的檔案需要自定義實作。
建立兩個配置檔案config.properties和configs.properties,分别寫入如下内容:
新增一個類用來讀取配置檔案
如果想要讀取yml檔案,則我們需要重寫DefaultPropertySourceFactory,讓其加載yml檔案,然後在注解
@PropertySource上自定factory。代碼如下:
配置檔案我們繼續用上面的兩個,定義一個類去讀取配置檔案
@ConfigurationProperties可以将配置檔案直接映射成一個實體類,然後我們可以直接操作實體類來擷取配置檔案相關資料。
建立一個yml檔案,當然properties檔案也沒問題
建立實體類用來映射該配置
prefix = "zhbin.config"用來指定配置檔案字首
如果需要擷取list集合,則做以下修改即可。
properties檔案預設使用的是iso8859-1,并且不可修改
yml檔案的加載順序高于properties,但是讀取配置資訊的時候會讀取後加載的
@PropertySource注解預設隻會加載properties檔案
@PropertySource注解可以與任何一種方式聯合使用
簡單值推薦使用@Value,複雜對象推薦使用@ConfigurationProperties