精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

不可不知!SpringBoot 3.4 中 @DefaultValue 注解的妙用與實(shí)戰(zhàn)

開發(fā) 前端
@DefaultValue? 注解是 Spring Boot 3.4 中非常實(shí)用的功能,它使得我們在屬性綁定時(shí)能夠?yàn)槿笔У膶傩蕴峁┠J(rèn)值,減少了因缺失配置而產(chǎn)生的異常和錯(cuò)誤。

在 Spring Boot 3.4 中,@DefaultValue 注解為我們提供了更加靈活的配置方式,尤其是在配置屬性綁定時(shí)。在實(shí)際開發(fā)中,配置文件的屬性綁定通常會通過兩種方式來實(shí)現(xiàn),分別是 @ConfigurationProperties 和 @Value。盡管兩者都能夠完成綁定任務(wù),但通常推薦使用 @ConfigurationProperties,因?yàn)樗峁┝烁叩慕Y(jié)構(gòu)化和類型安全性。

@ConfigurationProperties VS @Value

@ConfigurationProperties 為配置文件屬性綁定提供了一個(gè)更清晰且類型安全的方式。它將配置文件中的屬性映射到 Java 類的字段上,增強(qiáng)了代碼的可讀性和可維護(hù)性。而 @Value 雖然也能夠完成綁定任務(wù),但通常只適用于簡單的屬性,并且在處理復(fù)雜綁定時(shí),它缺乏類型安全的保障。使用 @Value 時(shí),還可能需要額外的自定義類型轉(zhuǎn)換器。

因此,在 Spring Boot 項(xiàng)目中,為了提升代碼的可維護(hù)性和避免潛在的錯(cuò)誤,通常推薦使用 @ConfigurationProperties 來綁定配置屬性。通過這種方式,代碼結(jié)構(gòu)更加清晰,同時(shí)也能避免運(yùn)行時(shí)錯(cuò)誤。

使用構(gòu)造函數(shù)進(jìn)行屬性綁定

通常情況下,@ConfigurationProperties 會通過 setter 方法來進(jìn)行屬性綁定。然而,Spring Boot 還支持使用構(gòu)造函數(shù)來進(jìn)行屬性綁定,提供了更為靈活的綁定方式。以下示例演示了如何使用構(gòu)造函數(shù)進(jìn)行綁定:

package com.icoderoad.config;


import org.springframework.boot.context.properties.ConfigurationProperties;


@ConfigurationProperties(prefix = "pack.app")
public class PackApp {
    private String title;
    private String version;
    private Integer sno;


    public PackApp(String title, String version, Integer sno) {
        this.title = title;
        this.version = version;
        this.sno = sno;
    }


    // getters, setters
}

在這個(gè)示例中,PackApp 類將會使用構(gòu)造函數(shù)進(jìn)行屬性綁定。

處理多個(gè)構(gòu)造函數(shù)

當(dāng)配置類中存在多個(gè)構(gòu)造函數(shù)時(shí),Spring Boot 默認(rèn)會使用 setter 方法進(jìn)行綁定。如果希望指定使用某一個(gè)構(gòu)造函數(shù)進(jìn)行綁定,可以使用 @ConstructorBinding 注解:

package com.icoderoad.config;


import org.springframework.boot.context.properties.ConstructorBinding;
import org.springframework.boot.context.properties.ConfigurationProperties;


@ConfigurationProperties(prefix = "pack.app")
public class PackApp {
    private String title;
    private String version;
    private Integer sno;


    @ConstructorBinding
    public PackApp(String title, String version) {
        this.title = title;
        this.version = version;
    }
}

這種情況下,Spring Boot 會使用帶有兩個(gè)參數(shù)的構(gòu)造函數(shù)進(jìn)行屬性綁定。

默認(rèn)構(gòu)造函數(shù)與私有構(gòu)造函數(shù)

如果配置類只有一個(gè)有參構(gòu)造函數(shù),Spring Boot 會默認(rèn)使用這個(gè)構(gòu)造函數(shù)進(jìn)行綁定。如果不希望使用該構(gòu)造函數(shù)進(jìn)行綁定,可以將其設(shè)置為 private 或者使用 @Autowired 注解:

package com.icoderoad.config;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.ConfigurationProperties;


@ConfigurationProperties(prefix = "pack.app")
public class PackApp {
    private String title;
    private String version;
    private Integer sno;


    @Autowired
    public PackApp(MyBean bean) {
        // 初始化代碼
    }
}

通過這種方式,Spring Boot 會使用 setter 方法來完成屬性綁定。

@DefaultValue 注解的使用

當(dāng)使用構(gòu)造函數(shù)綁定時(shí),如果某些屬性在配置文件中沒有找到對應(yīng)的值,@DefaultValue 注解可以為這些屬性設(shè)置默認(rèn)值。

假設(shè)配置文件如下:

pack:
  app:
    title: xxxx.xxxx
    version: 1.0.0

若配置文件中沒有定義 pack.app.sno 屬性,默認(rèn)情況下 sno 會被賦值為 null。但如果我們希望在沒有配置該屬性時(shí)使用默認(rèn)值,可以使用 @DefaultValue 注解:

package com.icoderoad.config;


import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.beans.factory.annotation.Value;


@ConfigurationProperties(prefix = "pack.app")
public class PackApp {
    private String title;
    private String version;


    @DefaultValue("888")
    private Integer sno;


    public PackApp(String title, String version, Integer sno) {
        this.title = title;
        this.version = version;
        this.sno = sno;
    }


    // getters, setters
}

運(yùn)行時(shí),如果 pack.app.sno 沒有在配置文件中提供值,sno 會自動(dòng)使用默認(rèn)值 888。

嵌套屬性的默認(rèn)值

如果你的配置類包含嵌套屬性,也可以使用 @DefaultValue 為這些嵌套屬性設(shè)置默認(rèn)值。例如:

package com.icoderoad.config;


@ConfigurationProperties(prefix = "pack.app")
public class PackApp {
    private String title;
    private String version;
    private Integer sno;


    private Security security;


    public PackApp(String title, String version, Integer sno, @DefaultValue("Security [username=null]") Security security) {
        this.title = title;
        this.version = version;
        this.sno = sno;
        this.security = security;
    }


    // getters, setters
}

如果 security 屬性沒有在配置文件中進(jìn)行配置,Spring Boot 會將其設(shè)置為一個(gè)默認(rèn)值,即 Security [username=null]。

嵌套集合屬性的默認(rèn)值

同樣,對于集合類型的嵌套屬性,也可以使用 @DefaultValue 注解設(shè)置默認(rèn)值。例如:

package com.icoderoad.config;


@ConfigurationProperties(prefix = "pack.app")
public class PackApp {
    private List<String> roles;


    public PackApp(String title, String version, Integer sno, @DefaultValue({"ADMIN", "MGR"}) List<String> roles) {
        this.roles = roles;
    }
}

如果 roles 屬性沒有在配置文件中提供,roles 將會使用默認(rèn)的 {"ADMIN", "MGR"} 值。

Record 類型與默認(rèn)值

Spring Boot 還支持使用 Record 類型作為配置類,并為 Record 類型的字段設(shè)置默認(rèn)值。例如:

package com.icoderoad.config;


@ConfigurationProperties(prefix = "pack.app")
public record AppRecord(String title, String version, @DefaultValue("999") Integer sno) {}

這種方式允許我們將默認(rèn)值應(yīng)用到 Record 類型的字段,增強(qiáng)了代碼的簡潔性和類型安全性。

總結(jié)

@DefaultValue 注解是 Spring Boot 3.4 中非常實(shí)用的功能,它使得我們在屬性綁定時(shí)能夠?yàn)槿笔У膶傩蕴峁┠J(rèn)值,減少了因缺失配置而產(chǎn)生的異常和錯(cuò)誤。結(jié)合構(gòu)造函數(shù)綁定和嵌套屬性的默認(rèn)值功能,@DefaultValue 注解為我們提供了更加靈活和安全的配置方式,極大地提升了代碼的可維護(hù)性與穩(wěn)定性。

責(zé)任編輯:武曉燕 來源: 路條編程
相關(guān)推薦

2010-06-11 14:46:38

可路由協(xié)議

2020-11-30 13:12:04

Linux文本命令

2015-01-15 09:34:28

2019-12-02 14:14:20

緩沖系統(tǒng)調(diào)用函數(shù)

2010-04-16 17:09:18

Oracle查看鎖

2020-11-11 21:27:55

緩沖文件調(diào)用

2014-06-09 13:21:27

2018-06-12 11:05:33

2025-01-03 17:10:54

2024-03-21 08:57:39

語言軟件開發(fā)

2014-06-20 14:35:48

浪潮數(shù)據(jù)

2010-10-27 10:39:44

求職

2021-01-27 09:45:17

負(fù)載均衡

2019-08-18 23:10:14

數(shù)據(jù)科學(xué)算法數(shù)學(xué)

2020-01-17 06:12:10

物聯(lián)網(wǎng)IOT技術(shù)

2015-07-30 17:30:43

Linux命令

2009-06-10 09:08:13

WCF變更處理契約

2009-06-02 16:32:10

IT培訓(xùn)職場白領(lǐng)

2023-11-13 14:19:57

Golang編程語言

2019-08-26 09:50:15

TCP連接Socket
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

日韩av影片在线观看| 亚洲欧洲精品一区二区三区| 91国在线精品国内播放| 国产高清自拍视频| 97久久网站| 亚洲最大成人综合| 欧美日韩高清在线一区| 国产夫妻自拍av| 美女精品网站| 欧美精品免费播放| 午夜时刻免费入口| 亚洲天堂中文字幕在线观看 | 美女毛片在线观看| 网红女主播少妇精品视频| 欧美日韩精品欧美日韩精品一综合| 蜜臀av性久久久久蜜臀av| 深夜福利在线视频| 国产乱码字幕精品高清av | 成人自拍小视频| 日韩激情网站| 日韩精品一区二区三区swag| 天天爽天天爽夜夜爽| 爱情岛论坛亚洲品质自拍视频网站| 国产欧美一区二区精品性| 国产66精品久久久久999小说| 免费在线不卡av| 中文一区在线| 欧美贵妇videos办公室| 国产一二三四视频| 亚洲va久久| 精品国产乱码久久久久久图片| 邪恶网站在线观看| 欧美日韩电影免费看| 亚洲综合色成人| 这里只有精品66| 国产美女性感在线观看懂色av| 成人激情综合网站| 亚洲自拍偷拍色片视频| 97视频免费在线| 99视频一区| 久久久久久久久中文字幕| 欧美爱爱免费视频| 欧美h版在线| 在线观看久久久久久| 亚洲国产天堂av| 一区二区三区视频免费观看| 亚洲国产高清福利视频| 香蕉在线观看视频| 亚洲日本va| 精品国产乱码久久久久久浪潮| 三上悠亚av一区二区三区| 欧美中文字幕精在线不卡| 欧美性猛交视频| 免费无码毛片一区二三区| tube8在线hd| 亚洲一区二区四区蜜桃| 国产又粗又猛又爽又黄的网站 | 久久久久中文字幕| 久久久久亚洲av无码专区| 欧美精品午夜| 欧美黑人xxx| 日韩毛片在线视频| 亚洲国产日本| 91成人在线观看国产| 免费在线不卡视频| 久久国产精品久久久久久电车| 91极品女神在线| 天天操夜夜操视频| 天堂一区二区在线免费观看| 国产成人精品视频在线观看| 久久久久久av无码免费看大片| 秋霞电影网一区二区| 国产精品一区久久久| 国产精品欧美亚洲| 丁香网亚洲国际| 久久99精品久久久久久水蜜桃| 日韩在线免费看| 国产欧美日韩激情| 影音先锋欧美在线| 日韩免费影院| 日韩欧美中文免费| 成年人三级黄色片| 亚洲国产中文在线| 日韩精品高清在线观看| 快灬快灬一下爽蜜桃在线观看| 国产精品91一区二区三区| 久久91精品国产91久久久| 国产精品suv一区二区三区| 视频在线观看一区二区三区| 国产自产女人91一区在线观看| 精品久久久久中文慕人妻| 成人爽a毛片一区二区免费| 欧美精品一区二区三区久久| 色网站免费在线观看| 亚洲午夜三级在线| 国产视频在线视频| 我要色综合中文字幕| 亚洲老司机av| 中文字幕在线有码| 久久久水蜜桃av免费网站| 国产综合福利在线| 日韩一区二区三区不卡| 中文在线免费一区三区高中清不卡| 中文字幕第一页亚洲| 少妇在线看www| 91精品国产入口在线| 双性尿奴穿贞c带憋尿| 久久精品亚洲欧美日韩精品中文字幕| 97久久国产精品| 国产一区二区自拍视频| 99国产精品99久久久久久| 亚洲一区二区三区在线观看视频| a级大胆欧美人体大胆666| 欧美视频自拍偷拍| 免费无码一区二区三区| 天天av综合| 国产99视频在线观看| 亚洲av无码一区二区乱子伦| 国产精品无圣光一区二区| 97超碰国产精品| 欧美美女被草| 在线播放日韩av| 国产精品免费av一区二区| 国产真实乱子伦精品视频| 欧美亚洲另类久久综合| 蜜桃av在线| 欧美精品一区二区三区在线| 久久国产精品国语对白| 日韩成人一区二区| 久久久久久久久久久久久久久久av | 五月天婷亚洲天综合网鲁鲁鲁| 国产美女情趣调教h一区二区| 欧美午夜电影在线播放| 亚欧洲乱码视频| 99综合视频| 国产偷久久久精品专区| 怡红院在线观看| 91精品国产综合久久精品| 久久久免费看片| 久久久久久网| 你懂的网址一区二区三区| 国产在线精彩视频| 精品久久久久久久久久久院品网 | 女人扒开腿免费视频app| 久久中文字幕二区| 国产精品视频久久久久| 成年人视频在线观看免费| 日韩欧美在线免费| 法国空姐电影在线观看| 麻豆精品网站| 日本高清一区| 免费视频观看成人| 色婷婷**av毛片一区| 中文字幕在线2018| 国产精品热久久久久夜色精品三区| 欧美丰满熟妇xxxxx| 亚洲动漫精品| 国产精品福利片| 色开心亚洲综合| 91精品国产综合久久精品性色| 三级av在线免费观看| 国产成人无遮挡在线视频| 国产在线观看欧美| 风间由美中文字幕在线看视频国产欧美| 欧美极品在线播放| 蜜桃av中文字幕| 欧美日韩国产麻豆| 久久精品—区二区三区舞蹈| 日韩成人一级大片| 日本福利视频导航| 伊人精品综合| 欧美在线视频a| 爱久久·www| 日韩一区二区免费在线观看| 国产性70yerg老太| 久久久777精品电影网影网 | 日韩精品一区二区亚洲av| 国产欧美视频一区二区| 亚洲综合20p| 亚洲激情婷婷| 日韩成人在线资源| 成人在线视频www| 久久久免费在线观看| 久久久久久青草| 91麻豆精品91久久久久久清纯| 国产在线一区视频| 国产人成一区二区三区影院| 老司机午夜性大片| 亚洲裸体俱乐部裸体舞表演av| 日韩高清国产精品| 综合激情久久| 国产97色在线| 最爽无遮挡行房视频在线| 亚洲国产成人在线视频| 亚洲一卡二卡在线观看| 亚洲一区二区三区四区在线免费观看 | 三级精品视频久久久久| 亚洲精品国产一区二| 日本精品视频一区二区三区| 青青青在线免费观看| 久久综合色一综合色88| 看看黄色一级片| 国产婷婷精品| 艳母动漫在线观看| 国产一区二区三区日韩精品| 国产精品视频福利| 日本久久久久| 国产成人极品视频| 久久av色综合| 精品国产拍在线观看| 日色在线视频| 亚洲成色777777女色窝| 一卡二卡三卡在线| 色综合咪咪久久| 欧美成人aaaaⅴ片在线看| 国产精品短视频| 中文字幕丰满孑伦无码专区| 国产精品12区| 老司机午夜性大片| 视频一区在线视频| 国产a级片网站| 欧美三级视频| 日韩精品成人一区二区在线观看| 国产图片一区| wwwxx欧美| 国产午夜精品一区在线观看| 国产精品在线看| 久久夜夜操妹子| 欧美亚洲成人精品| 岛国av在线播放| 欧美高清一级大片| 午夜激情在线| 欧美成人网在线| av黄在线观看| 不卡毛片在线看| 久草资源在线| 日韩一级黄色av| 秋霞午夜在线观看| 在线视频欧美日韩| a天堂在线资源| 亚洲偷欧美偷国内偷| 黄色在线网站| 亚洲天堂精品在线| 免费理论片在线观看播放老| 亚洲精品视频网上网址在线观看| 色哟哟中文字幕| 亚洲精品456在线播放狼人| 蜜臀久久久久久999| 精品国产91乱码一区二区三区 | 成人性生交大片免费| 欧美高清精品一区二区| 国产另类ts人妖一区二区| 日日夜夜精品视频免费观看| 国产一区二区看久久| 日韩欧美色视频| 国产91在线观看| 在线观看亚洲免费视频| 99久久精品免费看国产免费软件| 四季av综合网站| 2021国产精品久久精品| 亚洲久久久久久久| 国产精品免费免费| 欧美日韩午夜视频| 一级精品视频在线观看宜春院 | 亚洲欧洲一区| 内射国产内射夫妻免费频道| 欧美一级一区| 中文字幕天天干| 国产精品456露脸| 中文字幕人妻一区二区三区| 久久综合狠狠综合| 一级黄色毛毛片| 亚洲美女一区二区三区| 久久97人妻无码一区二区三区| 亚洲第一福利视频在线| 九一国产在线观看| 91福利精品视频| 国产免费一区二区三区最新不卡| 日韩欧美亚洲国产另类| 亚洲欧洲综合在线| 日韩网站免费观看| 国产高清在线a视频大全| 欧美在线视频一区二区| www999久久| 国内一区在线| 手机亚洲手机国产手机日韩| 男人添女荫道口喷水视频| 丝袜亚洲另类欧美| 亚洲欧美激情一区二区三区| 久久蜜桃av一区二区天堂| 国产第一页浮力| 天天操天天色综合| 一级黄色大毛片| 日韩成人在线电影网| 色网站免费在线观看| 97国产精品人人爽人人做| 欧美日韩免费电影| 国产综合欧美在线看| 日本一区二区高清不卡| 成年女人18级毛片毛片免费 | 无码人妻一区二区三区免费n鬼沢 久久久无码人妻精品无码 | 日本精品va在线观看| 亚洲精品伦理| 久久精品中文字幕一区二区三区| 久久综合88| 日韩激情免费视频| 国产乱码精品一品二品| 精品国产成人亚洲午夜福利| 亚洲一区二区三区美女| 亚洲综合免费视频| 亚洲精品视频网上网址在线观看| 182tv在线播放| 国产精品免费看久久久香蕉| 欧美激情影院| 黄网站色视频免费观看| 久久国产精品99久久人人澡| 少妇户外露出[11p]| 一二三四社区欧美黄| 国产一区二区自拍视频| 亚洲日韩中文字幕| 色一区二区三区| 国产不卡一区二区三区在线观看| 欧美激情777| 狠狠躁狠狠躁视频专区| 91一区二区三区在线播放| 麻豆亚洲av熟女国产一区二| 91精品黄色片免费大全| a√资源在线| 青青青国产精品一区二区| 国产成人tv| 人妻无码一区二区三区四区| 国产在线播精品第三| 成人三级视频在线观看| 在线亚洲欧美专区二区| 精华区一区二区三区| 国产99视频在线观看| 视频一区在线观看| 97xxxxx| 久久亚洲欧美国产精品乐播| 国产成人在线免费视频 | 韩国福利在线| 欧美亚洲另类制服自拍| 牛牛精品成人免费视频| 久久视频这里有精品| 波多野结衣在线一区| 一级免费在线观看| 日韩电影中文字幕| 亚洲精品日产| 免费日韩av电影| 西西裸体人体做爰大胆久久久| 少妇一级淫免费观看| 欧美日韩国产激情| 天天干,夜夜爽| 2025国产精品视频| 亚洲制服一区| 亚洲天堂av线| 亚洲视频 欧洲视频| 国产白浆在线观看| 九色91av视频| 好吊妞视频这里有精品| 每日在线更新av| 国产亚洲精品精华液| 中文字幕av无码一区二区三区| 色噜噜狠狠色综合网图区| 婷婷激情成人| 青青青在线观看视频| 99久久久精品免费观看国产蜜| 麻豆久久久久久久久久| 亚洲性生活视频在线观看| 精品女同一区二区三区在线观看| 青少年xxxxx性开放hg| 福利一区二区在线| 亚洲欧美综合自拍| 中文字幕国产精品| 日韩成人久久| 国产99久久九九精品无码| 国产欧美一区二区精品性色 | 国产91丝袜在线18| 99久久精品国产亚洲| www.久久久久| aaa国产精品| 国产日韩成人内射视频 | 夜夜嗨av一区二区三区四区| 97色婷婷成人综合在线观看| 日韩av中文字幕第一页| 欧美激情一区二区| 亚洲爱情岛论坛永久| 日韩av免费在线播放| 98精品视频| 变态另类丨国产精品| 欧美日韩电影一区| 98色花堂精品视频在线观看| 午夜一区二区三区| 高清在线成人网| 伊人成年综合网| 欧美精品www| 久久中文亚洲字幕| 久久久久久久久久久国产精品| 91精品婷婷国产综合久久性色| 美女100%一区|