1. 程式人生 > >Spring boot 配置方法

Spring boot 配置方法

SpringBoot yml 配置

1. 在 spring boot 中,有兩種配置檔案,一種是application.properties,另一種是application.yml,兩種都可以配置spring boot 專案中的一些變數的定義,引數的設定等。下面來說說兩者的區別。

application.properties 配置檔案在寫的時候要寫完整,如:

spring.profiles.active=dev
spring.datasource.data-username=root
spring.datasource.data-password=root

在yml 檔案中配置的話,寫法如下:

  

spring:
  profiles:
    active: prod
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/test
    username: root
    password: root

yml 檔案在寫的時候層次感強,而且少寫了程式碼。所以現在很多人都使用yml配置檔案。

2. 在專案中配置多套環境的配置方法。
因為現在一個專案有好多環境,開發環境,測試環境,準生產環境,生產環境,每個環境的引數不同,所以我們就可以把每個環境的引數配置到yml檔案中,這樣在想用哪個環境的時候只需要在主配置檔案中將用的配置檔案寫上就行如下:

spring:
  profiles:
    active: prod 
這行配置在application.yml 檔案中,意思是當前起作用的配置檔案是application_prod.yml,其他的配置檔案命名為 application_dev.yml,application_bat.yml等。

3. 專案啟動的時候也可以設定 Java -jar xxxxxx.jar spring.profiles.actiove=prod 也可以這樣啟動設定配置檔案,但是這只是用於開發和測試。

4. 配置檔案資料的讀取:
比如我在檔案中配置了一個 
massage:
  data:
    name: qibaoyi
我在類中想要獲取他 需要這樣去寫:
@Value("${message.data.name}")
private String name;

後面你取到變數name 的值就是配置檔案中配置的值。

5. 大家需要注意一點,配置檔案中引數的寫法:name: qibaoyi中間是有一個空格的,在IDEA 編譯器中它會提醒你的。

 

YAML檔案簡介

 我們可能在spring配置檔案裡見到過.yml格式的東東,配置檔案不都是.propertie或者.xml檔案嗎?.yml是什麼鬼,今天我帶你們來一探究竟。

 YAML(Yet Another Markup Language)(發音 /ˈjæməl/ )
 一種基於Unicode容易閱讀,容易和指令碼語言互動的,用來表達資料序列的程式語言。

 

適應場景

  1. 指令碼語言:由於實現簡單,解析成本很低,YAML 特別適合在指令碼語言中使用
  2. 序列化: YAML是由宿主語言資料型別直轉,的比較適合做序列化。
  3. 配置檔案:寫 YAML 要比寫 XML 快得多(無需關注標籤或引號),並且比 INI 文件功能更強。由於相容性問題,不同語言間的資料流轉建議不要用 YAML。

語言優點

  1. YAML易於人們閱讀。
  2. YAML資料在程式語言之間是可移植的。
  3. YAML匹配敏捷語言的本機資料結構。
  4. YAML具有一致的模型來支援通用工具。
  5. YAML支援單程處理。
  6. YAML具有表現力和可擴充套件性。
  7. YAML易於實現和使用。

YAML 語法

  1. 使用空格 Space 縮排表示分層,不同層次之間的縮排可以使用不同的空格數目,但是同層元素一定左對齊,即前面空格數目相同(不能使用 Tab,各個系統 Tab對應的 Space 數目可能不同,導致層次混亂)
  2. ‘#’表示註釋,只能單行註釋,從#開始處到行尾
  3. 破折號後面跟一個空格(a dash and space)表示列表
  4. 用冒號和空格表示鍵值對 key: value
  5. 簡單資料(scalars,標量資料)可以不使用引號括起來,包括字串資料。用單引號或者雙引號括起來的被當作字串資料,在單引號或雙引號中使用C風格的轉義字元

Sequence of Scalars  簡單資料列表

- Mark McGwire

- Sammy Sosa

- Ken Griffey

Mapping Scalars to Scalars 簡單資料鍵值對以及註釋

hr: 65 # Home runs

avg: 0.278 # Batting average

rbi: 147 # Runs Batted In

 

Mapping Scalars to Sequences 簡單資料列表鍵值對

american:

- Boston Red Sox

- Detroit Tigers

- New York Yankees

national:

- New York Mets

- Chicago Cubs

- Atlanta Braves

Sequence of Mappings 鍵值對列表 

-

name: Mark McGwire

hr: 65

avg: 0.278

-

name: Sammy Sosa

hr: 63

avg: 0.288


YAML 還支援流型別,用中括號括起來表示列表,用逗號分隔元素;用大括號括起來表示鍵值對,用逗號分隔元素。

Sequence of Sequences 列表的列表 

- [name , hr, avg ]

- [Mark McGwire, 65, 0.278]

- [Sammy Sosa , 63, 0.288]

 

 Mapping of Mappings  鍵值對的鍵值對

Mark McGwire: {hr: 65, avg: 0.278}

Sammy Sosa: {

hr: 63,

avg: 0.288

}

 

yaml 官方網站:http://www.yaml.org

yaml 官方文件:http://www.yaml.org/spec/1.2/spec.html

 

想了解更多技術文章,請關注“java開發者聯盟”

--------------------- 本文來自 beginya 的CSDN 部落格 ,全文地址請點選:https://blog.csdn.net/beginya/article/details/76768968?utm_source=copy