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

SpringBoot實(shí)現(xiàn)給屬性賦值的兩種方式

 更新時(shí)間:2024年07月24日 09:26:03   作者:Xwzzz_  
在Spring Boot中,配置文件是用來設(shè)置應(yīng)用程序的各種參數(shù)和操作模式的重要部分,Spring Boot支持兩種主要類型的配置文件:properties文件和YAML 文件,這兩種文件都可以用來定義相同的配置,接下來由小編給大家詳細(xì)的介紹一下這兩種方式

一,介紹

在Spring Boot中,配置文件是用來設(shè)置應(yīng)用程序的各種參數(shù)和操作模式的重要部分。Spring Boot支持兩種主要類型的配置文件:properties文件和YAML 文件。這兩種文件都可以用來定義相同的配置,但它們?cè)诟袷胶捅磉_(dá)能力上有所不同。

二,Properties 配置方式

properties文件是Java平臺(tái)最傳統(tǒng)的配置方式,文件擴(kuò)展名為 .properties。這種格式非常簡單,主要由鍵值對(duì)組成,每一對(duì)鍵值對(duì)設(shè)置一個(gè)配置屬性。

示例:

定義模型Person類:

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
 
@Component
@ConfigurationProperties(prefix="person")
public class Person {
    private String name;
    private int age;
    private String uuid;
    private Dog dog;
 
    // standard getters and setters
 
    public static class Dog {
        private String name;
        private String breed;
 
        // standard getters and setters
    }
}

Properties 配置

person.name=John Doe
person.age=35
person.uuid=${random.uuid}
person.dog.name=Rex
person.dog.breed=Labrador

這樣配置后,Spring Boot 會(huì)自動(dòng)application.properties中的相關(guān)配置注入到 Person對(duì)象和其內(nèi)部的 Dog對(duì)象。

使用 @Value注解也可以直接在 Spring Boot 應(yīng)用中注入配置值,例

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
 
@Component
public class Person {
    @Value("${person.name}")
    private String name;
 
    @Value("${person.age}")
    private int age;
 
    @Value("${person.uuid}")
    private String uuid;
 
    // 內(nèi)部類和其他配置略
}

三,YAML 配置方式

YAML 是一種層次結(jié)構(gòu)化的數(shù)據(jù)格式,相比于 properties文件,它支持列表和嵌套的對(duì)象,使得配置更加清晰和組織化。

yaml配置:

person:
  name: "John Doe"
  age: 35
  uuid: ${random.uuid}
  dog:
    name: "Rex"
    breed: "Labrador"

這時(shí)要將YAML文件中的配置自動(dòng)映射到一個(gè)Java類中,需要在Spring Boot應(yīng)用中定義相應(yīng)的配置類,并使用@ConfigurationProperties注解。

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
 
@Configuration
@ConfigurationProperties(prefix = "person")
public class Person {
    private String name;
    private int age;
    private String uuid;
    private Dog dog;
 
 
    @Component
    public static class Dog {
        private String name;
        private String breed;
 
        // getters and setters
        public String getName() {
            return name;
        }
 
        public void setName(String name) {
            this.name = name;
        }
 
        public String getBreed() {
            return breed;
        }
 
        public void setBreed(String breed) {
            this.breed = breed;
        }
    }
}

四,對(duì)比

1. 可讀性

  • YAML 由于其支持層級(jí)結(jié)構(gòu),通常在表達(dá)更復(fù)雜的配置時(shí)更加清晰和易讀。
  • Properties 文件更適合簡單的平面鍵值對(duì),但在需要表達(dá)嵌套配置時(shí)可讀性較差。

2. 表達(dá)能力

  • YAML 支持復(fù)雜的數(shù)據(jù)結(jié)構(gòu),如列表和字典(即嵌套的對(duì)象),這使得它在表達(dá)如安全規(guī)則、路由配置等復(fù)雜配置時(shí)非常有用。
  • Properties 文件不支持直接的層級(jí)或復(fù)雜結(jié)構(gòu),所有結(jié)構(gòu)都必須通過點(diǎn)分隔的方式平鋪開來表達(dá)。

3. 錯(cuò)誤檢測

  • YAML 文件由于格式更加復(fù)雜,對(duì)縮進(jìn)非常敏感,錯(cuò)誤的縮進(jìn)可能導(dǎo)致整個(gè)文件無法解析。
  • Properties 文件結(jié)構(gòu)簡單,縮進(jìn)和格式錯(cuò)誤的容忍度較高。

4. 使用場景

  • 如果配置較為簡單,或是遷移遺留項(xiàng)目而不希望引入新的復(fù)雜性,那么使用.properties可能更合適。
  • 對(duì)于新項(xiàng)目或需要表達(dá)復(fù)雜配置的情況,.yaml提供了更強(qiáng)的表達(dá)能力和更好的可讀性。

以上就是SpringBoot實(shí)現(xiàn)給屬性賦值的兩種方式的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot給屬性賦值的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Spring Cloud負(fù)載均衡及遠(yuǎn)程調(diào)用實(shí)現(xiàn)詳解

    Spring Cloud負(fù)載均衡及遠(yuǎn)程調(diào)用實(shí)現(xiàn)詳解

    這篇文章主要介紹了Spring Cloud負(fù)載均衡及遠(yuǎn)程調(diào)用實(shí)現(xiàn)詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 線程池的七大核心參數(shù)以及常用的四種線程池詳解

    線程池的七大核心參數(shù)以及常用的四種線程池詳解

    這篇文章主要介紹了線程池的七大核心參數(shù)以及常用的四種線程池使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-05-05
  • Spring事務(wù)執(zhí)行流程及如何創(chuàng)建事務(wù)

    Spring事務(wù)執(zhí)行流程及如何創(chuàng)建事務(wù)

    這篇文章主要介紹了Spring事務(wù)執(zhí)行流程及如何創(chuàng)建事務(wù),幫助大家更好的理解和學(xué)習(xí)使用spring框架,感興趣的朋友可以了解下
    2021-03-03
  • MyBatis源碼解析——獲取SqlSessionFactory方式

    MyBatis源碼解析——獲取SqlSessionFactory方式

    這篇文章主要介紹了MyBatis源碼解析——獲取SqlSessionFactory方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java實(shí)現(xiàn)把文件及文件夾壓縮成zip

    Java實(shí)現(xiàn)把文件及文件夾壓縮成zip

    這篇文章主要介紹了Java實(shí)現(xiàn)把文件及文件夾壓縮成zip,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • IDEA中try catch拋異??旖萱I分享

    IDEA中try catch拋異??旖萱I分享

    在編寫Java代碼時(shí),使用IDEA的快捷鍵CTRL+ALT+t可以快速生成try..catch語句塊,有效提高編碼效率,首先選擇需要處理的代碼片段,然后按下快捷鍵,選擇try/catch選項(xiàng),即可自動(dòng)包圍選中代碼,這一快捷操作簡化了異常處理步驟,減少了手動(dòng)編寫的時(shí)間,是編程中的實(shí)用技巧
    2024-10-10
  • Java日常開發(fā)中讀寫TXT文本舉例詳解

    Java日常開發(fā)中讀寫TXT文本舉例詳解

    這篇文章主要給大家介紹了關(guān)于Java日常開發(fā)中讀寫TXT文本,包括使用BufferedReader、Scanner、FileInputStream等類進(jìn)行讀取,以及使用BufferedWriter、PrintWriter、FileOutputStream等類進(jìn)行寫入,需要的朋友可以參考下
    2024-12-12
  • 使用java NIO及高速緩沖區(qū)寫入文件過程解析

    使用java NIO及高速緩沖區(qū)寫入文件過程解析

    這篇文章主要介紹了使用java NIO及高速緩沖區(qū)寫入文件過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Java二分查找之循環(huán)條件與區(qū)間寫法詳解

    Java二分查找之循環(huán)條件與區(qū)間寫法詳解

    二分查找算法是一種高效的搜索算法,適用于有序數(shù)組,它通過將查找范圍不斷減半,逐步縮小目標(biāo)值的搜索空間,最終找到目標(biāo)元素或確認(rèn)目標(biāo)不存在,這篇文章主要介紹了Java二分查找之循環(huán)條件與區(qū)間寫法的相關(guān)資料,需要的朋友可以參考下
    2026-03-03
  • Spring?Boot?3.x?GraalVM原生鏡像構(gòu)建內(nèi)存溢出問題解決方案

    Spring?Boot?3.x?GraalVM原生鏡像構(gòu)建內(nèi)存溢出問題解決方案

    文章解析了Spring?Boot?3.x與GraalVM?Native?Image構(gòu)建過程中出現(xiàn)的內(nèi)存溢出問題,從問題概述、根本原因、診斷工具、解決方案到高級(jí)調(diào)優(yōu)技巧和應(yīng)急解決方案,全面覆蓋了構(gòu)建優(yōu)化的各個(gè)方面,本文給大家介紹的非常詳細(xì),感興趣的朋友一起學(xué)習(xí)下吧
    2026-01-01

最新評(píng)論

阿克苏市| 盐边县| 泽普县| 庆阳市| 攀枝花市| 长葛市| 章丘市| 清河县| 白山市| 苍梧县| 云林县| 兴城市| 山丹县| 新兴县| 大方县| 上杭县| 邹城市| 武邑县| 海原县| 精河县| 当雄县| 祁连县| 汽车| 山阴县| 镇雄县| 余江县| 凤冈县| 嘉祥县| 稷山县| 穆棱市| 黔江区| 河源市| 丰镇市| 洪江市| 治县。| 靖边县| 留坝县| 榆林市| 洪泽县| 公安县| 达州市|