最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot項目屬性配置(application.properties、yml和yaml)

 更新時間:2025年08月01日 10:05:38   作者:香餑餑~、  
SpringBoot支持多種配置文件格式,包括application.properties、yml和yaml,application.properties是鍵值對結(jié)構(gòu),常用于簡單配置,如設(shè)置服務(wù)器端口,yml和yaml文件格式相同,使用縮進(jìn)表示層級,適合復(fù)雜配置,下面就來詳細(xì)的介紹一下

簡介

SpringBoot支持多種配置文件格式,包括application.properties、yml和yaml等。本文章將詳細(xì)介紹這三種配置文件的內(nèi)容格式和詳細(xì)用法,以及在程序中如何對配置文件中的屬性進(jìn)行讀取。文章內(nèi)容若存在錯誤或需改進(jìn)的地方,歡迎大家指正!若對操作有任何疑問歡迎留言!非常感謝!

一、SpringBoot默認(rèn)配置文件

1、application.properties文件

該文件位于resources目錄下,是隨工程的創(chuàng)建而生成的一個空白文件(若沒有可手動創(chuàng)建,必須保證名稱和類型為application.properties),在這個文件中可以進(jìn)行項目的配置。

2、文件內(nèi)容要求:

  • 鍵值對結(jié)構(gòu),格式為key=value
  • 注釋以#或者!開頭
  • 列表或者數(shù)組的值使用逗號隔開
  • 使用點號 . 表示屬性層級
  • 想看系統(tǒng)支持哪些配置可以在Spring官方查看,鏈接:Common Application Properties

以配置啟動端口為例,SpringBoot項目默認(rèn)的啟動端口為8080,現(xiàn)在將這個端口配置為8888。如下,只需要在application.properties文件中配置server.port=8888即可。

二、yml或者yaml配置文件

1、簡介

yml文件和yaml文件本質(zhì)上是同一種文件格式,沒有實質(zhì)性的技術(shù)區(qū)別。.yaml是官方推薦的標(biāo)準(zhǔn)擴(kuò)展名,.yml是因為早期Windows限制3字符擴(kuò)展名而流行。無論使用哪個擴(kuò)展名,文件內(nèi)容都遵循相同的 YAML 規(guī)范。所以下面在介紹文件時,也不再區(qū)分二者。

因為yaml文件內(nèi)容的層次感更強(qiáng),內(nèi)容更加清爽,一目了然。所以,在實際項目中大部分情況下是使用.yaml或者.yml作為配置文件,application.properties文件使用的頻率就較低些。一般情況下,三者不會共存。

2、語法規(guī)則

  • 大小寫敏感
  • 屬性層級關(guān)系使用多行描述,每行結(jié)尾使用冒號結(jié)束
  • 使用縮進(jìn)表示層級關(guān)系,同層級左側(cè)對齊,只允許使用空格(不允許使用Tab鍵)
  • 屬性值前面添加空格(屬性名與屬性值之前使用冒號+空格作為分割)
  • # 表示注釋
  • ${一級屬性名.二級屬性名... ...}表示屬性引用
  • 使用引號包裹帶有轉(zhuǎn)義字符的字符串才可以生效
# 普通使用
name: demo
 
# 層級關(guān)系
user:
  name: zhangsan
  age: 18
 
# 數(shù)組/列表格式
list:
  - zhangsan
  - lisi
  - wangwu
# 數(shù)組/列表縮略格式
list2: [zhangsan, lisi, wangwu]
 
# 對象列表
users:
  - name: zhangsan
    age: 18
  - name: lisi
    age: 19
  - name: wangwu
    age: 20
# 對象列表縮略格式
users2: [{name:zhangsan, age:18},{name:lisi, age:19},{name:wangwu, age:20}]
 
# ---------- 部分補(bǔ)充 ----------
# TRUE,true,True,FALSE,false,False
boolean: TRUE
# 6.23542343e+5 支持科學(xué)計數(shù)法
float: 3.14
# 0b1010_0111_0100_1010_1110 支持二進(jìn)制、八進(jìn)制、十六進(jìn)制
int: 123
# 使用 ~ 表示null
null: ~
# 字符串可以直接書寫
string: HelloWorld
# 可以使用雙引號包裹特殊字符
string2: "Hello\nWorld"
 
# 屬性引用
baseUrl: "127.0.0.1"
tmp: ${baseUrl}:${server.port}}

3、配置文件加載優(yōu)先級

當(dāng)application.properties文件、yaml文件、yml文件三者共存時,文件中相同配置的加載優(yōu)先級如下:

application.properties > yml > yaml

而三個文件中不同的配置就不存在加載優(yōu)先級的問題,而是全部保留,也就是說三個文件的不同的屬性都會被讀到。

三、SpringBoot程序中讀取配置文件屬性的幾種方式

1、使用@Value注解讀取

程序中定義的屬性名與配置文件中的屬性名并沒有強(qiáng)關(guān)聯(lián),也就是定義的時候無需強(qiáng)制保持一致。

使用@Value注解讀取單個數(shù)據(jù),屬性名引用方式:${一級屬性名.二級屬性名... ...},只需要在大括號中加一個冒號然后寫值就可以設(shè)置默認(rèn)值:${一級屬性名.二級屬性名... ...:默認(rèn)值}。

2、使用Environment類對象獲取屬性

使用@Autowired在類中注入Environment對象,然后使用getProperty方法接收配置文件中的屬性名來獲取屬性值,可以進(jìn)行非空判斷來設(shè)置默認(rèn)值。

3、自定義對象映射配置文件屬性

(1)創(chuàng)建定義對象

注意:這里可能與聽到的知識不太一樣,可自行測試

配置項中的名稱需要與實體類的set方法后的名稱保持強(qiáng)一致。配置項名稱時可以不與實體類中的屬性名保持一致,因為一般情況下set/get方法后面的名稱是和屬性名一致的,比如自動生成或者使用lombok生成的方法,都是一致的,所以也會有配置項名必須屬性名保持一致的說法。如果有特殊情況,那么只需要保證配置項中的名稱需要與實體類的set方法后的名稱強(qiáng)一致即可,與get方法、實體類名、實體屬性名、set方法形參無關(guān)。

(2)將類交給Spring的IOC容器

這個地方有兩種方式,注意只能使用其中一種,不可同時使用!

第一種方式:在自定義類上增加@Component注解,讓當(dāng)前的類直接注冊成IOC的Bean。

第二種方式:在啟動類上聲明@EnableConfigurationProperties注解,并在指定屬性值,這里的屬性值如果只有一個類可以直接寫,若是多個類可以使用數(shù)組形式。這種方式會自動將數(shù)組里面的類注冊為Bean,好處在于在這里可以直觀的觀察到有哪些讀取配置類。

(3)指定當(dāng)前類加載的數(shù)據(jù)

在自定義類上面增加@ConfigurationProperties(prefix = "student")注解,并使用prefix屬性指定配置文件中屬性前綴。綁定前綴命名規(guī)范:僅能使用純小寫字母、數(shù)字、下劃線作為合法的字符。

(4)示例

通過上面三部就已經(jīng)完成了配置文件中的屬性對自定義類屬性的映射,下面是一個使用示例:

到此這篇關(guān)于SpringBoot項目屬性配置(application.properties、yml和yaml)的文章就介紹到這了,更多相關(guān)SpringBoot 屬性配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • Maven繼承父工程時的relativePath標(biāo)簽解析用法小結(jié)

    Maven繼承父工程時的relativePath標(biāo)簽解析用法小結(jié)

    relativePath 的作用是為了找到父級工程的pom.xml,本文主要介紹了Maven繼承父工程時的relativePath標(biāo)簽解析用法小結(jié),具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • Springboot居然可以設(shè)置動態(tài)的Banner(推薦)

    Springboot居然可以設(shè)置動態(tài)的Banner(推薦)

    這篇文章主要介紹了Springboot居然可以設(shè)置動態(tài)的Banner,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Spring Boot 如何解決富文本上傳圖片跨域問題

    Spring Boot 如何解決富文本上傳圖片跨域問題

    這篇文章主要介紹了Spring Boot 如何解決富文本上傳圖片跨域問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • springboot 返回json格式數(shù)據(jù)時間格式配置方式

    springboot 返回json格式數(shù)據(jù)時間格式配置方式

    這篇文章主要介紹了springboot 返回json格式數(shù)據(jù)時間格式配置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • 搭建MyBatis-Plus框架并進(jìn)行數(shù)據(jù)庫增刪改查功能

    搭建MyBatis-Plus框架并進(jìn)行數(shù)據(jù)庫增刪改查功能

    這篇文章主要介紹了搭建MyBatis-Plus框架并進(jìn)行數(shù)據(jù)庫增刪改查,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Java字符串替換函數(shù)replace()用法解析

    Java字符串替換函數(shù)replace()用法解析

    這篇文章主要介紹了Java字符串替換函數(shù)replace()用法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • mybatis-spring:@MapperScan注解的使用

    mybatis-spring:@MapperScan注解的使用

    這篇文章主要介紹了mybatis-spring:@MapperScan注解的使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Spring Boot使用Thymeleaf + Gradle構(gòu)建war到Tomcat

    Spring Boot使用Thymeleaf + Gradle構(gòu)建war到Tomcat

    今天小編就為大家分享一篇關(guān)于Spring Boot使用Thymeleaf + Gradle構(gòu)建war到Tomcat,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • Java FileInputStream讀中文亂碼問題解決方案

    Java FileInputStream讀中文亂碼問題解決方案

    這篇文章主要介紹了Java FileInputStream讀中文亂碼問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • 使用Java自制一個一個Nacos

    使用Java自制一個一個Nacos

    Nacos是?Dynamic?Naming?and?Configuration?Service的首字母簡稱,一個更易于構(gòu)建云原生應(yīng)用的動態(tài)服務(wù)發(fā)現(xiàn)、配置管理和服務(wù)管理平臺,本文將嘗試用Java實現(xiàn)一個Nacos,感興趣的可以了解下
    2024-01-01

最新評論

手游| 南郑县| 丹东市| 黔南| 定安县| 永丰县| 体育| 临武县| 山阴县| 肥城市| 营口市| 双牌县| 尼木县| 新乐市| 芦溪县| 三门峡市| 香港 | 晋宁县| 滁州市| 云南省| 威宁| 苏尼特右旗| 天水市| 抚顺县| 明水县| 澄迈县| 申扎县| 普定县| 皋兰县| 贡嘎县| 大石桥市| 青田县| 福鼎市| 大丰市| 岑溪市| 仁化县| 明光市| 兴隆县| 鹤庆县| 廉江市| 伊春市|