首頁  >  文章  >  Java  >  java架構基礎:Spring Cloud YAML 、Properties配置詳解

java架構基礎:Spring Cloud YAML 、Properties配置詳解

php是最好的语言
php是最好的语言原創
2018-08-10 14:55:002440瀏覽

目錄

Spring Cloud YAML 設定詳解1

Properties詳解2

自訂參數2

參數引用3

隨機數4

外部參入4

多重環境配置5

YAML6

YAML有以下基本規則:6

使用YAML完成多環境設定7

在先前的實例中,我們使用了src/main/resources/application.properties對我們的專案做了個性化的配置,這種配置方式簡單明了,也是我們經常使用的

但是應對複雜的商業需求下,多環境和程式化的配置無法得以滿足

為此Spring Cloud為我們提供了YAML的配置方式豐富我們的功能和簡化我們的開發同時也能簡單明了的分辨配置內容。

Properties詳解

自訂參數

自訂參數可以讓我們在設定檔中定義一些參數以供在程式中使用

在這裡我們使用Spring註解的方式實作這個功能

首先建立一個實體類別

@Component

public  class Dalao {

@Value("${dalao.name}")

private String name;

@Value("${dalao.yanzhi}")

private String yanzhi;

##…..getter setter省略

#@Component 註解:

把普通pojo實例化到spring容器中,相當於設定檔中的

#修改application.propertie增加以下設定參數

dalao.name=mashibing

dalao.yanzhi=100

使用自訂參數

Spring 管理對象

讓Spring 注入對象,這裡需要注意的是如果自己new的對像是沒有被Spring容器管理的,所以不會自動注入屬性值給我們

@Autowired

private Dalao dalao;

測試列印

#System .

out.println(ToStringBuilder.reflectionToString(dalao));

System.

out.println(ToStringBuilder.reflectionToString(new# Dalao( )));

ToStringBuilder

這裡用到了ToStringBuilder完成物件轉字串,要使用這個物件的話需要引入Spring的工具包commons-lang3

Pom

org.apache.commons

commons-lang3

3.7

3.7

參數引用

在application.propertie中的各個參數值是可以互相引用的

我們修改一下先前的設定

dalao.name=mashibing

dalao.yanzhi=100

dalao.desc=${dalao.name}is a good teacher, bing bu shi yin wei ${dalao.name} de yan zhi = ${dalao.yanzhi}

實體中新增

##@Value("${dalao. desc}")

private String desc;

#輸出結果

隨機數字

有些特殊需求,我們不希望設定的屬性值是固定值,例如伺服器隨機連接埠號,某些編號等,我們可以使用${radom}在設定中產生隨機int,long或是string

${random.int()} = 隨機int

${random.long} = 隨機long

${random.int(50)} = 50以內的隨機數字

${random.int(50,100)} = 50~100之間的int隨機數

${random.value}= 隨機字串

#設定檔中使用

dalao.xiaodi.zhangyang.yanzhi=${random.int(50,100)}

##dalao.xiaodi.zhangyang.xinqing=$ {random.value}

外部參入

在微服務架構中經常會使用自動維運部署工具,使用這些工具來啟動我們的服務我們的Spring boot程式通常是使用java –jar的方式來啟動運行的

###對於服務連接埠號碼或是一些其他需要在啟動服務的時候才能決定的值,如果在配置中寫死或是用隨機明顯是滿足不了需求的######我們可以使用外部參數替換自訂的參數#########例如臨時決定服務連接埠:##### ####java -jar demo-0.0.1-SNAPSHOT.jar --server.port=60#########顏值同時改變:#########java -jar demo-0.0.1-SNAPSHOT.jar --server.port=60 --dalao.xiaodi.zhangyang.yanzhi######使用外部配置方式可以讓我們在服務啟動時改變像服務端口,資料庫連接密碼,自訂屬性值等等#########多環境配置#######

在實際開發中,我們的一套程式碼可能會同時部署到開發、測試、生產等多個伺服器中,每個環境中諸如資料庫密碼等這些個人化配置是避免不了的,雖然我們可以透過自動化維運部署的方式使用外部參數在服務啟動時暫時替換屬性值,但這也意味著維運成本增加。

我們可以透過多套組態來避免對於不同環境修改不同的組態屬性

使用方式:

先建立多套設定檔

命名規則為:

Application-*,properties

Application-dev,properties = 開發環境

Application-test,properties= 測試環境

Application-prod,properties=產生環境

接下來我們在application.properties中設定哪套配置生效的開關

使用spring.profiles.active=dev

在使用java –jar的方式啟動服務的時候我們就可以透過外部參數改變整套配置了

java -jar demo-0.0.1-SNAPSHOT.jar -- spring.profiles.active= test

YAML

YAML是「YAML Ain't Markup Language YAML不是一種標記語言」的外語縮寫

但為了強調這種語言以資料做為中心,而不是以置標語言為重點,而用返璞詞重新命名。它是一種直觀的能夠被電腦識別的資料序列化格式,是一個可讀性高並且容易被人類閱讀,容易和腳本語言交互,用來表達資料序列的程式語言。

它是類似標準通用標記語言的子集XML的資料描述語言,語法比XML簡單很多。

YAML有以下基本規則:

1、大小寫敏感

2、使用縮排表示層級關係

3 、禁止使用tab縮排,只能使用空白鍵

4、縮排長度沒有限制,只要元素對齊就表示這些元素屬於一個層級。

5、使用#表示註解

6、字串可以不用引號標註

使用YAML完成多環境設定

方式一:

單一yml檔案配合多propertys檔案

#方式二:

單一yml檔案內配置所有變量

相關推薦:

spring cloud教學之config修改設定方法介紹

Spring、Spring MVC、MyBatis整合文件配置詳解

#

以上是java架構基礎:Spring Cloud YAML 、Properties配置詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn