1. 程式人生 > 其它 >springboot系列(三)配置檔案詳解 springboot系列(三)配置檔案詳解

springboot系列(三)配置檔案詳解 springboot系列(三)配置檔案詳解

springboot系列(三)配置檔案詳解

目錄

引言:
Springboot有一個全域性配置檔案,這個配置檔案預設是properties檔案,就是application.properties檔案,其實還有一種檔案,就是yml檔案,只不過這種檔案是需要自己建立的。這個配置檔案是用來修改Springboot的預設配置的。比如說當我們集成了start-web之後,Springboot預設的web伺服器是Tomcat,我們可以對Tomcat的預設配置做一些處理。配置檔案能做的事情很多,語法也很簡單。

properties 檔案

1.語法

key=value

比如配置Tomcat的埠:server.port=8081
對大小寫敏感。

2.優先順序

一般情況下,properties可以在專案的4個地方存在,然後他們每個位置有不同的優先順序,並且,不同名的時候application.properties的優先順序是最高的,就是說,Springboot啟動的時候,他會自己掃描指定路徑下面的application.properties檔案作為預設的配置檔案。
掃描的包路徑按照優先順序有下面四個:

  1. file:./config/
  2. file:./
  3. classpath:/config/
  4. classpath:/

這麼一說,你可能不知道在哪,來張圖看看,第一個就是專案根目錄下面的config檔案下面的,第二個就是根目錄下面的,第三個就是resources檔案下面的config檔案下面的,最後一個是resources檔案下面的。

按照這個優先順序,Springboot啟動的時候會掃描這些包,然後將配置植入spring環境中,如果遇到相同的配置,優先順序高的會覆蓋優先順序低的配置,比如說你有四個檔案,四個檔案裡面都配置了專案啟動埠,那麼這個埠的配置只會用優先順序最高的那個檔案的配置。遇到不同的配置,這些配置就會互補,形成最大化的配置。

我們還可以通過spring.config.location 來改變預設的配置檔案位置。但是需要先打包專案,這一塊就留著後面再說,我會持續更新!你也可以wx search 全棧學習筆記!精彩美文每天推送!

3.自定義資料配置

配置檔案除了能修改一些原本固有的配置,還能自定義配置。
自定義物件資料:


先定義一個student的物件,物件裡面包含了常用的資料型別。

自定義的實體類:

如果遇到java的駝峰命名,在properties檔案裡面的命名就比較寬鬆,比如java裡面用studentName,我在properties裡面既可以用studentName,也可以用student-name,或者是student_name,都行。
這就是自定義資料的配置。下面看看怎麼獲取這些資料。

4.獲取自定義資料配置

在配置檔案中,有一些配置是springboot可以直接獲得的,有一些是不能獲取的,比如自定義的配置,像server.port這種屬於原本有的預設配置,我們是做修改的。如果我們自定義了一些配置,就像上面我們定義的一些資料,就需要用其他方法獲取了。

properties: 字串預設不用加上單引號或者雙引號
'' 單引號,會轉義特殊字元
"" 雙引號不會轉義特殊字元
yml也是一樣

專案結構圖:

1.通過prefix獲取

實體類的程式碼:

說明:將properties裡面的student繫結到這個實體類上面,它會一一對應,這個原始碼應該是用的反射和註解,反射,註解不會的可以看看我之前的文章哦!都是乾貨。

controller裡面的測試程式碼:


程式碼填寫完成之後重新執行環境然後檢視你的執行埠,我的執行埠是8086

在瀏覽器輸入:http://localhost:8085/student/getStudent

然後就能看到獲取到資料了,獲取到的資料:

但是你會看到這個資料獲取到的中文是亂碼,在idea裡面需要設定一下。file->settings

設定完成點apply,這樣好像原來的中文就是亂碼了,然後你需要重新改回來,再重新啟動專案就不會亂碼了。

2.通過@value註解獲取

這樣顯示的結果是隻能獲取到一個name,$是一個佔位符號,利用這種語法,需要對實體類的每個屬性一一對應,比較麻煩。建議使用第一種方法。

yml檔案

1.語法

key空格:空格value

注意:空格不能少,大小寫敏感
利用縮排代表層級關係,只要是縮排一樣就代表是一級的

2.優先順序

在既有yml檔案也有properties檔案的時候(其實還有一種yaml,和yml差不多的),yml載入順序是先於properties的,所以優先順序是properties大於yml,然後其他的情況下的優先順序和properties檔案是一樣的。

3.自定義資料配置。

自定義資料的和properties檔案差不多。寫法上稍微有點差異,但是它的功能相對來說比較強大,程式碼簡潔,可讀性高。

4.獲取自定義資料配置

1.通過prefix

不管是yml,還是properties檔案,獲取資料集都是一樣用法。

2.通過@value註解獲取

同上properties檔案獲取的方式。



原文轉載:https://www.cnblogs.com/swzx-1213/p/12641842.html