springboot系列(三)配置文件詳解

引言:
Springboot有一個全局配置文件,這個配置文件默認是properties文件,就是application.properties文件,其實還有一種文件,就是yml文件,只不過這種文件是須要本身建立的。這個配置文件是用來修改Springboot的默認配置的。好比說當咱們集成了start-web以後,Springboot默認的web服務器是Tomcat,咱們能夠對Tomcat的默認配置作一些處理。配置文件能作的事情不少,語法也很簡單。java

properties 文件

1.語法

key=valueweb

好比配置Tomcat的端口:server.port=8081
對大小寫敏感。spring

2.優先級

通常狀況下,properties能夠在項目的4個地方存在,而後他們每一個位置有不一樣的優先級,而且,不一樣名的時候application.properties的優先級是最高的,就是說,Springboot啓動的時候,他會本身掃描指定路徑下面的application.properties文件做爲默認的配置文件。
掃描的包路徑按照優先級有下面四個:瀏覽器

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

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

在這裏插入圖片描述

按照這個優先級,Springboot啓動的時候會掃描這些包,而後將配置植入spring環境中,若是遇到相同的配置,優先級高的會覆蓋優先級低的配置,好比說你有四個文件,四個文件裏面都配置了項目啓動端口,那麼這個端口的配置只會用優先級最高的那個文件的配置。遇到不一樣的配置,這些配置就會互補,造成最大化的配置。服務器

咱們還能夠經過spring.config.location 來改變默認的配置文件位置。可是須要先打包項目,這一塊就留着後面再說,我會持續更新!你也能夠wx search 全棧學習筆記!精彩美文天天推送!app

3.自定義數據配置

配置文件除了能修改一些本來固有的配置,還能自定義配置。
自定義對象數據:ide

在這裏插入圖片描述
先定義一個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文件獲取的方式。

相關文章
相關標籤/搜索