国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Springboot】yaml配置文件&多環(huán)境切換

這篇具有很好參考價(jià)值的文章主要介紹了【Springboot】yaml配置文件&多環(huán)境切換。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

關(guān)于配置文件的詳細(xì)說(shuō)明可以看官方文檔:

24.?Externalized Configuration


以下是個(gè)人學(xué)習(xí)過(guò)程中的筆記,如有錯(cuò)誤,請(qǐng)多指教!

目錄

(一)配置文件

(二)yaml的概述及基本使用

????????yaml基本語(yǔ)法

(三)注入配置文件的三種方式

(四)yaml配置文件位置

(五)多環(huán)境切換配置文件


(一)配置文件

Springboot中可以使用兩種形式的配置文件:.properties文件和 .yml文件

  1. application.properties

    ????????語(yǔ)法結(jié)構(gòu) :key=value
  2. application.yml

    ? ? ? ? 語(yǔ)法結(jié)構(gòu): key: value

(二)yaml的概述及基本使用

YAML是 "YAML Ain't a Markup Language" (YAML不是一種標(biāo)記語(yǔ)言)的遞歸縮寫。在開(kāi)發(fā)的這種語(yǔ)言時(shí),YAML 的意思其實(shí)是:"Yet Another Markup Language"(仍是一種標(biāo)記語(yǔ)言)

????????????????????????????????yaml語(yǔ)言以數(shù)據(jù)為中心,而不是以標(biāo)記語(yǔ)言為重點(diǎn)!

傳統(tǒng)xml配置

<server>
    <port>8081<port>
</server>

yaml配置

server:
  port: 8080

????????yaml基本語(yǔ)法:

????????1. 冒號(hào)后面必須加一個(gè)空格!

????????2. yaml通過(guò)縮進(jìn)區(qū)分層級(jí)關(guān)系,相同縮進(jìn)的為同一層級(jí)。

????????3.?屬性和值的大小寫都是十分敏感的。

對(duì)象、Map(鍵值對(duì))

# 配置對(duì)象屬性
person: 
  name: 小明
  age: 8

# 配置鍵值對(duì)
maps: {k1: v1, k2: v2}
  

數(shù)組(List、set)

用 - 值表示數(shù)組中的一個(gè)元素,比如:

pets: 
  - cat
  - dog
  - parrot

# 行內(nèi)寫法
pets: [cat, dog, parrot]

(三)注入配置文件的三種方式

方式一:通過(guò)yaml配置文件注入匹配值

需要文件有:一個(gè)實(shí)體類Dog(name和age屬性),application.yml, 一個(gè)測(cè)試類,還需在pom.xml中另外新添一個(gè)依賴。

①實(shí)體類Dog

package com.example.pojo;


@Component  //注冊(cè)bean到容器中
@ConfigurationProperties(prefix = "dog") // 加載application.yaml中的配置,前綴為dog
public class Dog{

    private String name;
    private Integer age;

    //有參無(wú)參構(gòu)造方法、get和set方法、toString()方法
}

②application.yml

dog: 
  name: 旺財(cái)
  age: 3

③測(cè)試類

@SpringBootTest
class DemoApplicationTests {

    @Autowired //將狗狗自動(dòng)注入進(jìn)來(lái)
    private Dog dog;

    @Test
    public void contextLoads() {
        System.out.println(dog); //打印看下狗狗對(duì)象
    }

}

這里還需要在pom.xml中添加一個(gè)依賴,很關(guān)鍵!不加的話會(huì)爆紅。

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-configuration-processor</artifactId>
    <optional>true</optional>
</dependency>

運(yùn)行結(jié)果:

【Springboot】yaml配置文件&多環(huán)境切換

方式二(還沒(méi)學(xué)到y(tǒng)aml時(shí)是如何給bean注入屬性值的):通過(guò)@Value進(jìn)行注入

這里只需要一個(gè)實(shí)體類即可,

@Component  // 注冊(cè)bean
public class Dog{

    @Value("旺財(cái)")
    private String name;
    @Value("3")
    private Integer age;
}

方式三:指定加載自定義的properties文件為對(duì)象屬性賦值

要有兩個(gè)文件:whatever.properties(放在resources文件夾下)和一個(gè)實(shí)體類Dog;

(ps.這里的配置文件我取名為whatever,表示配置文件的名字是什么都可以,不一定非得是application.properties)

①whatever.properties配置文件

name=旺財(cái)
age=3

②實(shí)體類Dog

@Component  //注入到容器中
@PropertySource(value = "classpath:whatever.properties") 
// 加載指定路徑的配置文件,這里的whatever.properties文件放在resources文件夾下
public class Dog{
    @Value("${name}")
    private String name;
    @Value("${age}")
    private Integer age;
}

三種方式看下來(lái),@Value是最麻煩的了。

@Value和@ConfigurationProperties對(duì)比如下:

@ConfigurationProperties @Value
功能 批量注入配置文件中的屬性 一個(gè)個(gè)指定
松散綁定(松散語(yǔ)法) 支持 不支持
SpEL 不支持 支持
JSR303數(shù)據(jù)校驗(yàn) 支持 不支持
復(fù)雜類型封裝 支持 不支持

1、@ConfigurationProperties只需要些一次就好,@Value則需要每個(gè)字段都添加。

2、松散綁定:比方說(shuō)yml文件中寫的last-name,實(shí)體類的屬性是lastName也能匹配得上,- 后面跟著的字母默認(rèn)是大寫的。具體可以測(cè)試下。

3、 JSR303數(shù)據(jù)校驗(yàn),就是可以在字段是增加一層過(guò)濾器驗(yàn)證 , 可以保證數(shù)據(jù)的合法性。(比如@Null 驗(yàn)證對(duì)象是否為null ,@Email 驗(yàn)證是否是郵件地址,如果為null,不進(jìn)行驗(yàn)證,算通過(guò)驗(yàn)證。)

4、復(fù)雜類型封裝,yml中可以封裝對(duì)象,@Value就不支持。

結(jié)論:

配置yml和配置properties都可以獲取到值 , 推薦使用 yml;

如果在某個(gè)業(yè)務(wù)中,只需要獲取配置文件中的某個(gè)值,可以使用一下 @Value;

如果說(shuō),我們專門編寫了一個(gè)JavaBean來(lái)和配置文件進(jìn)行一一映射,就直接@configurationProperties,不要猶豫!


(四)yaml配置文件位置

可以放在4種地方:

序號(hào) 位置 說(shuō)明 優(yōu)先級(jí)
./config/ 工程文件中的config文件夾下 第一優(yōu)先被配置
./ 直接在工程文件根目錄下 第二優(yōu)先被配置
classpath:/config/ 資源文件夾中的config文件夾下 第三優(yōu)先被配置
classpath:/ 直接在資源文件下 第四優(yōu)先被配置

項(xiàng)目中具體位置可參考下圖:

【Springboot】yaml配置文件&多環(huán)境切換


(五)多環(huán)境切換配置文件

我們?cè)谥髋渲梦募帉懙臅r(shí)候,文件名可以是 application-{profile}.properties/yml ,

用來(lái)指定多個(gè)環(huán)境版本;

例如:

application-test.properties 代表測(cè)試環(huán)境配置

application-dev.properties 代表開(kāi)發(fā)環(huán)境配置

但是Springboot并不會(huì)直接啟動(dòng)這些配置文件,它默認(rèn)使用application.properties主配置文件

(1)使用proerties文件進(jìn)行配置:

下圖可見(jiàn)我們有三個(gè)配置文件:

【Springboot】yaml配置文件&多環(huán)境切換

?切換環(huán)境時(shí),在application.properties中說(shuō)明。

【Springboot】yaml配置文件&多環(huán)境切換

(1)使用yaml文件進(jìn)行配置:

【Springboot】yaml配置文件&多環(huán)境切換

?僅在一個(gè)文件中配置即可,---表示分割線

注意:如果yml和properties同時(shí)都配置了端口,并且沒(méi)有激活其他環(huán)境 , 默認(rèn)會(huì)使用properties配置文件的!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-455520.html

到了這里,關(guān)于【Springboot】yaml配置文件&多環(huán)境切換的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 一、SpringBoot基礎(chǔ)[Yaml配置文件]

    解釋:application.yaml用來(lái)替代application.properties文件,如果文件中有較多的配置時(shí),使用Yaml明顯方便了許多 application.properties文件格式: Yaml文件格式: 注意:寫的時(shí)候冒號(hào)后面必須加空格否則沒(méi)有任何效果 1.對(duì)象 2.數(shù)組 解釋:下面的 - 就表示一個(gè)列表內(nèi)容,有的則是 [] 表示

    2024年02月15日
    瀏覽(19)
  • springboot篇---配置文件yaml篇2

    springboot篇---配置文件yaml篇2

    1.語(yǔ)法結(jié)構(gòu)分類: application.properties 語(yǔ)法結(jié)構(gòu) :key=value application.yml 語(yǔ)法結(jié)構(gòu) :key:空格 value **配置文件的作用 :**修改SpringBoot自動(dòng)配置的默認(rèn)值,因?yàn)镾pringBoot在底層都給我們自動(dòng)配置好了 ?2.yaml概述 YAML是 “YAML Ain’t a Markup Language” (YAML不是一種標(biāo)記語(yǔ)言)的遞歸縮寫。

    2024年02月04日
    瀏覽(19)
  • python通過(guò)yaml文件來(lái)實(shí)現(xiàn)環(huán)境配置

    YAML 的官方網(wǎng)站 python實(shí)現(xiàn)獲取YAML 文件的完整路徑 以上這段代碼定義了一個(gè)函數(shù) get_file_path() ,用于獲取指定文件夾、環(huán)境命名文件夾和 YAML 文件的完整路徑。 函數(shù)接受三個(gè)參數(shù): folder :文件夾名稱。 env :環(huán)境命名文件夾名稱。 filename :YAML 文件名。 函數(shù)通過(guò)調(diào)用 Python

    2024年02月01日
    瀏覽(17)
  • 【SpringBoot】多環(huán)境切換的靈活配置

    【SpringBoot】多環(huán)境切換的靈活配置

    在日常的開(kāi)發(fā)中,一般都會(huì)分好幾種環(huán)境,比如通常的 開(kāi)發(fā)環(huán)境:一般在開(kāi)發(fā)的過(guò)程中,一個(gè)比較隨意地環(huán)境,通??梢噪S意重啟,刪除數(shù)據(jù) ; 測(cè)試環(huán)境:面向測(cè)試同學(xué)的環(huán)境,需要相對(duì)穩(wěn)定,完整,基本模擬線上的環(huán)境,但是可操作。 生產(chǎn)環(huán)境:也就是線上環(huán)境,基本沒(méi)

    2024年03月11日
    瀏覽(23)
  • springboot--多環(huán)境配置快速切換開(kāi)發(fā)、測(cè)試、生產(chǎn)環(huán)境

    springboot--多環(huán)境配置快速切換開(kāi)發(fā)、測(cè)試、生產(chǎn)環(huán)境

    環(huán)境隔離能力,快速切換開(kāi)發(fā)、測(cè)試、生產(chǎn)環(huán)境 步驟: 1、標(biāo)識(shí)環(huán)境:指定那些組件、配置在那個(gè)生效 2、切換環(huán)境:這個(gè)環(huán)境對(duì)應(yīng)的所有組件和配置就應(yīng)該生效 區(qū)分出幾個(gè)環(huán)境:dev(開(kāi)發(fā)環(huán)境)、test(測(cè)試i環(huán)境)、prod(生產(chǎn)環(huán)境)、default(默認(rèn)環(huán)境) 指定每個(gè)組件在那個(gè)環(huán)境

    2024年02月06日
    瀏覽(23)
  • Spring Boot入門(04):實(shí)現(xiàn)多環(huán)境配置文件切換,輕松搞定不同環(huán)境部署問(wèn)題

    Spring Boot入門(04):實(shí)現(xiàn)多環(huán)境配置文件切換,輕松搞定不同環(huán)境部署問(wèn)題

    ? ? ? ? 在開(kāi)發(fā)和部署Spring Boot應(yīng)用的過(guò)程中,經(jīng)常需要在不同的環(huán)境中進(jìn)行配置,比如開(kāi)發(fā)環(huán)境、測(cè)試環(huán)境、生產(chǎn)環(huán)境等。為了方便管理和部署,我們需要實(shí)現(xiàn)多環(huán)境配置文件切換。本篇教程將帶你輕松搞定不同環(huán)境部署問(wèn)題,讓你的應(yīng)用在各個(gè)環(huán)境中穩(wěn)定運(yùn)行。無(wú)論你是

    2024年02月10日
    瀏覽(23)
  • springboot dynamic-datasource 實(shí)現(xiàn)動(dòng)態(tài)切換數(shù)據(jù)源-多租戶-配置文件切換-基于dynamic-datasource

    1、實(shí)現(xiàn)動(dòng)態(tài)切換數(shù)據(jù)源 2、實(shí)現(xiàn)配置多數(shù)據(jù)源 3、實(shí)現(xiàn)讀寫分離也可以用多數(shù)據(jù)源方式 4、選擇 dynamic-datasource集成了很多ORM的框架,其中,使用比較多的是druid,但有一些東西開(kāi)始收費(fèi)了 druid也可以自行配置,配置多了點(diǎn) 目前版本只支持單一位置加載數(shù)據(jù)源(只能從配置文件或

    2024年02月09日
    瀏覽(18)
  • 關(guān)于k8s 安裝Dashboard recommended.yaml下載失敗以及calico.yaml 下載文件

    關(guān)于k8s 安裝Dashboard recommended.yaml下載失敗以及calico.yaml 下載文件

    輸入地址: https://www.ipaddress.com/ 查找 查詢結(jié)果: 然后配置 linux 文件 vim /etc/hosts 然后再執(zhí)行: calico.yaml 下載地址:https://docs.projectcalico.org/v3.8/manifests/calico.yaml

    2024年02月16日
    瀏覽(21)
  • SpringBoot多環(huán)境開(kāi)發(fā)-配置文件

    SpringBoot多環(huán)境開(kāi)發(fā)-配置文件

    在Spring Boot中進(jìn)行多環(huán)境開(kāi)發(fā)時(shí),你可以使用配置文件來(lái)定義每個(gè)環(huán)境的屬性。Spring Boot提供了一種方便的方式來(lái)管理和加載不同環(huán)境的配置文件。 以下是一些常見(jiàn)的配置文件命名約定: application.properties: 默認(rèn)的配置文件,適用于所有環(huán)境。 application-dev.properties: 用于 開(kāi)發(fā)

    2024年02月14日
    瀏覽(17)
  • SpringBoot入門篇2 - 配置文件格式、多環(huán)境開(kāi)發(fā)、配置文件分類

    SpringBoot入門篇2 - 配置文件格式、多環(huán)境開(kāi)發(fā)、配置文件分類

    目錄 例: 修改服務(wù)器端口。(3種) src/main/resources/application.properties ?src/main/resources/application.yml (主要用這種) ??src/main/resources/application.yaml SpringBoot配置文件加載優(yōu)先級(jí) :/application.properties application.yml ?application.yaml yaml,一種數(shù)據(jù)序列化格式。 優(yōu)點(diǎn):容易閱讀、以數(shù)據(jù)為

    2024年02月11日
    瀏覽(60)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包