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

徹底告別 `@Value`:用 Spring Boot 3 構建可維護、類型安全的配置體系

開發 前端
Spring Boot 為我們提供了更為優雅的配置方式:@ConfigurationProperties,它支持將同一前綴下的多個配置項綁定為一個 Java Bean 或 Record,使配置更集中、結構更清晰。

前言:從一個常見“反例”談起

在一次代碼審查中,一位新同事使用如下方式將配置項注入服務類中:

@Value("${retry.attempts:3}")
private int attempts;


@Value("${retry.interval:1000}")
private long interval;

這是 Spring Boot 項目中最常見的配置注入方式之一。它簡單、直接,也確實“能用”。但如果你深入項目結構、維護需求、配置管理、測試等多個維度去看,就會發現以下 致命問題:

@Value 注入的 4 大痛點

問題

描述

分散配置

配置分布在多個類中,難以統一查找與重構

類型不安全

錯誤類型/格式無法被 IDE 及時發現,甚至不會拋出異常

缺少校驗

無法對字段添加如 @NotNull、@Min 等校驗邏輯

污染業務邏輯

默認值寫在注解中,難以追蹤且邏輯混亂

推薦方案:使用 @ConfigurationProperties 統一綁定外部配置

Spring Boot 為我們提供了更為優雅的配置方式:@ConfigurationProperties,它支持將同一前綴下的多個配置項綁定為一個 Java Bean 或 Record,使配置更集中、結構更清晰。

示例配置(application.yaml)

retry:
  attempts: 5
  interval: 2000

一步步實現配置綁定機制

步驟 1:創建配置綁定類(推薦使用 Record)

package com.icoderoad.config;


import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotNull;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.validation.annotation.Validated;


/**
 * 將 retry.* 的配置綁定到該類中
 */
@Validated
@ConfigurationProperties(prefix = "retry")
public record RetryProperties(
        @NotNull @Min(1) int attempts,
        @NotNull @Min(100) long interval
) {}

 從 Spring Boot 3 開始,@ConfigurationProperties 支持 Record 類型配置類,帶來天然不可變特性。

步驟 2:在啟動類中啟用配置綁定

package com.icoderoad;


import com.icoderoad.config.RetryProperties;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;


@SpringBootApplication
@EnableConfigurationProperties(RetryProperties.class)
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

步驟 3:服務類中注入并使用配置類

package com.icoderoad.service;


import com.icoderoad.config.RetryProperties;
import org.springframework.stereotype.Service;


@Service
public class RetryService {


    private final RetryProperties retryProperties;


    public RetryService(RetryProperties retryProperties) {
        this.retryProperties = retryProperties;
    }


    public void execute() {
        for (int i = 0; i < retryProperties.attempts(); i++) {
            try {
                // 執行業務操作
                break;
            } catch (Exception e) {
                try {
                    Thread.sleep(retryProperties.interval());
                } catch (InterruptedException ignored) {
                }
            }
        }
    }
}

Bonus:集成測試配置綁定類

你可以單獨為配置類進行單元測試,驗證其校驗邏輯:

class RetryPropertiesTest {


    @Test
    void shouldCreateWithValidValues() {
        RetryProperties props = new RetryProperties(5, 1000);
        assertEquals(5, props.attempts());
        assertEquals(1000, props.interval());
    }


    @Test
    void shouldThrowExceptionWithInvalidValues() {
        assertThrows(ConstraintViolationException.class, () -> {
            RetryProperties props = new RetryProperties(0, -100); // 無效值
        });
    }
}

進階用法:嵌套配置、列表配置、Map 配置

嵌套對象配置

mail:
  server:
    host: smtp.example.com
    port: 587


@ConfigurationProperties(prefix = "mail")
public class MailProperties {
    private Server server;


    public static class Server {
        private String host;
        private int port;
        // getter/setter
    }
}

配置 List

whitelist:
  users:
    - alice
    - bob


@ConfigurationProperties(prefix = "whitelist")
public class WhitelistProperties {
    private List<String> users;
}

配置 Map

features:
  login: true
  register: false


@ConfigurationProperties(prefix = "features")
public class FeatureFlags {
    private Map<String, Boolean> featureMap;
}

常見問題解答(FAQ)

為什么不直接使用 @Value?

@Value 無法進行參數分組、校驗、不支持嵌套對象、類型不安全,適合快速驗證原型,不推薦用于生產環境。

@ConfigurationProperties 與 @Value 性能差異?

二者本質都是通過 Spring 容器進行依賴注入,性能無明顯差異。選擇 @ConfigurationProperties 是出于可維護性和清晰性考慮。

為什么要用 Record?

  • Java Record 是一種不可變的數據結構
  • 自動生成構造器、getters、equals、hashCode
  • 配合 @ConfigurationProperties 表達力強,減少樣板代碼

結語:用正確姿勢構建配置體系

使用 @ConfigurationProperties,不僅讓配置清晰統一,還帶來了如下優勢:

  • 支持復雜配置結構
  • 強類型校驗,安全性提升
  •  易測試、易維護
  •  天然支持不可變對象
  • 與 Spring Boot 生態高度融合

不要再讓 @Value 成為你項目里的“配置地雷”了!

現在就行動起來,重構你的配置邏輯,從 @Value 向 @ConfigurationProperties 進化,擁抱現代 Spring Boot 開發范式!

責任編輯:武曉燕 來源: 路條編程
相關推薦

2025-07-29 02:00:00

SpringJakartaBoot 3

2025-01-27 00:48:12

Java 8代碼接口

2025-03-14 07:57:54

2025-04-27 03:00:00

Spring集成測試

2022-07-18 09:41:29

屬性類型安全Spring

2023-11-08 13:55:27

2022-11-21 08:11:18

2025-03-26 03:20:00

2025-04-30 07:43:21

2025-07-28 04:00:00

Spring框架應用程序

2025-06-27 02:00:00

2023-09-21 11:20:46

2022-05-12 11:38:26

Java日志Slf4j

2015-12-18 13:44:13

2022-09-23 13:57:11

xxl-job任務調度中間件

2025-07-23 08:40:33

瀏覽器前端開發

2022-06-02 10:58:54

架構微服務Spring

2011-10-14 11:18:14

數據安全

2017-03-09 19:16:56

點贊
收藏

51CTO技術棧公眾號

国模私拍视频在线播放| 中文字幕激情小说| 视频一区在线| 欧美日韩激情小视频| 欧美一区二区在线| av高清一区二区| 亚洲综合国产激情另类一区| 久久视频精品在线| 一区二区三区少妇| 国产精品一区二区三区四区在线观看| 亚洲电影一区二区| 午夜视频久久久| 内射后入在线观看一区| 蜜臀精品一区二区三区在线观看 | 97caopor国产在线视频| 久久嫩草精品久久久精品| 国产人妖伪娘一区91| 日韩精品成人在线| 亚洲精品国产首次亮相| 国产丝袜一区二区| 少妇熟女视频一区二区三区| 人人精品久久| 在线免费观看日韩欧美| 可以在线看的av网站| 50度灰在线| 中文一区二区在线观看| 久久久久久久久四区三区| 性做久久久久久久| 国产一区二区在线观看免费| 国产精品v日韩精品| 日本一区二区不卡在线| 亚洲欧美在线专区| 色综合亚洲精品激情狠狠| 毛茸茸多毛bbb毛多视频| 91成人福利| 欧美一级一区二区| 欧美精品 - 色网| 欧美久久久网站| 91福利社在线观看| 欧美日韩一区二区在线免费观看| 91九色在线播放| 亚洲一区在线看| 精品国产一区二区三区无码| 欧美精品电影| 国产精品国产精品国产专区不蜜 | 美女爆乳18禁www久久久久久 | 日本一区二区三区免费视频| 欧美色123| 欧美国产日韩一区二区三区| 9999热视频| 在线国产一区| 欧美另类老女人| 久久婷婷国产麻豆91| 欧美成人久久| 欧美国产中文字幕| 久久久精品国产sm调教| 国产一区欧美| 97国产在线视频| 久久久久久久久久久久久久av| 国产精品久久久久9999高清| 欧美日韩蜜桃| 一本一道人人妻人人妻αv| 中文字幕在线观看欧美| 久久aⅴ国产紧身牛仔裤| 69影院欧美专区视频| 福利一区二区三区四区| 精品999网站| 午夜欧美大片免费观看| 国产成人在线免费观看视频| 99亚洲伊人久久精品影院红桃| 97视频免费观看| 六月丁香婷婷综合| 青娱乐精品视频| 成人网址在线观看| 日本精品999| 久久久亚洲欧洲日产国码αv| 欧美一区三区二区在线观看| av电影在线网| 亚洲免费看黄网站| 免费在线观看亚洲视频| 国产精品高清乱码在线观看| 欧美日韩精品欧美日韩精品一| 亚洲第一成肉网| 国产精品久久久网站| 精品视频在线观看日韩| 亚洲不卡的av| 很黄很黄激情成人| 在线免费观看视频一区| 在线观看国产精品入口| 久久久久久久影视| 亚洲综合国产激情另类一区| 婷婷中文字幕综合| 伊人色综合久久天天五月婷| 中文在线字幕免费观看| 欧美日韩中文字幕在线视频| 日本黄色福利视频| 精品成人自拍视频| 在线性视频日韩欧美| 国产精品国产精品88| 国产日本精品| 亚洲一区二区在线播放| 午夜视频在线播放| 亚洲美女精品一区| 精品国产成人av在线免| 清纯唯美激情亚洲| 中文字幕av一区二区三区谷原希美| 国产在线欧美在线| 麻豆视频一区二区| 美女主播视频一区| 在线观看电影av| 在线免费不卡电影| 艳妇乳肉豪妇荡乳xxx| 手机亚洲手机国产手机日韩| **欧美日韩vr在线| 亚洲国产日韩在线观看| 国产精品网站一区| 白嫩少妇丰满一区二区| 2023国产精华国产精品| 色偷偷亚洲男人天堂| 日本特级黄色片| 岛国一区二区三区| 一本一道久久久a久久久精品91 | 久久免费精品日本久久中文字幕| www.亚洲激情| 91久色porny| 成人在线国产视频| 精品国产一区二区三区2021| 夜夜嗨av色一区二区不卡| 自拍偷拍欧美亚洲| 成人永久看片免费视频天堂| 一区二区精品在线| jizz亚洲女人高潮大叫| 亚洲人成电影网站色www| 国产成人精品亚洲男人的天堂| 狠狠色丁香久久婷婷综| 这里只有精品66| 成人福利片在线| 国产一区二区动漫| 亚洲综合久久网| 久久综合久久综合九色| 缅甸午夜性猛交xxxx| 国产一区二区三区亚洲| 欧美激情第1页| 精品久久久无码中文字幕| 17c精品麻豆一区二区免费| 超碰在线人人爱| 成人免费看片39| 国产精品欧美日韩久久| 亚洲天天影视| 91.麻豆视频| 欧美黑人猛猛猛| 国产成人在线网站| 日韩精品视频在线观看视频| 国产福利资源一区| 97在线视频免费| 性感美女一级片| 一本久久a久久精品亚洲| 五级黄高潮片90分钟视频| 香蕉成人久久| 亚洲精品久久久久久一区二区| av亚洲一区| 久久国产精品视频| 免费国产精品视频| 欧美日韩亚洲视频一区| 日本激情小视频| 美女视频第一区二区三区免费观看网站| 神马影院我不卡午夜| 韩国精品视频在线观看| 久久最新资源网| 蜜臀av午夜精品| 色综合久久中文字幕| 国产成人免费观看网站| 久久99精品国产麻豆不卡| 中国女人做爰视频| 久久久免费毛片| 国产精品久久av| www视频在线免费观看| 亚洲国产精品高清久久久| 黄色片中文字幕| 欧美国产1区2区| www.久久com| 亚洲综合三区| 伊人久久大香线蕉av一区| 日韩激情精品| 26uuu另类亚洲欧美日本一 | 欧美国产精品一区二区| 午夜福利123| 亚洲在线播放| av磁力番号网| 最新精品国偷自产在线| 成人免费视频在线观看超级碰| 国产乱码在线| 日韩在线视频线视频免费网站| www.精品久久| 在线看日本不卡| 久久这里只有精品免费| 国产清纯白嫩初高生在线观看91 | 特黄特色免费视频| 久久美女性网| 国产成人在线小视频| 精品国产乱码| 精品一区二区三区自拍图片区| 高清亚洲高清| 日本高清不卡在线| 视频在线这里都是精品| 国产香蕉精品视频一区二区三区| 精品久久久久中文慕人妻| 色综合久久综合网欧美综合网| 182在线观看视频| 久久综合久久综合九色| 91超薄肉色丝袜交足高跟凉鞋| 美女诱惑一区二区| 日本www在线播放| 正在播放日韩欧美一页| 三区精品视频观看| 日韩中文av| 国产精品久久久久久久天堂第1集| 嫩草伊人久久精品少妇av杨幂| 久久免费精品视频| free性欧美hd另类精品| 伊人激情综合网| 奇米影视888狠狠狠777不卡| 亚洲成**性毛茸茸| hs视频在线观看| 欧美美女网站色| 中文字幕 欧美激情| 精品久久久在线观看| 久久黄色免费视频| 亚洲人成精品久久久久| 国产精品久久久久久久av| 久久免费看少妇高潮| 黄色在线免费播放| 国产精品香蕉一区二区三区| 久久6免费视频| 久久精品99国产精品日本| 日本熟妇人妻中出| 乱人伦精品视频在线观看| 免费看国产一级片| 亚洲精品极品| 国产欧美日韩网站| 黄色精品免费| 青青草视频在线视频| 中文一区一区三区免费在线观看| 中文字幕色一区二区 | 国产91沈先生在线播放| 一区二区在线影院| 777久久精品一区二区三区无码| 亚洲精品99| 日韩视频在线观看视频| 欧美成人直播| 妞干网这里只有精品| 一级欧洲+日本+国产| 裸体裸乳免费看| 精品成人久久| 国产免费毛卡片| 嫩草成人www欧美| 日本成人在线免费视频| 日日噜噜夜夜狠狠视频欧美人| 成年人在线看片| 老司机午夜精品| 99国产精品免费视频| 成人免费毛片片v| 巨胸大乳www视频免费观看| 久久久午夜电影| 91av手机在线| 一区二区三区视频在线观看| 欧美日韩精品一区二区三区视频播放 | 欧美日韩一区二区三区视频| 亚洲天堂手机在线| 日韩视频免费观看高清完整版在线观看| wwwxxxx国产| 日韩国产精品一区| av黄色在线观看| 欧美黑人性生活视频| 亚洲黄色免费av| 国产欧美日韩精品丝袜高跟鞋| 九九99久久精品在免费线bt| 国产伦精品一区二区三区四区免费| 天堂成人娱乐在线视频免费播放网站 | 波多结衣在线观看| 国产精品一二三在| 野外性满足hd| 亚洲婷婷综合久久一本伊一区| 久久久全国免费视频| 一本大道久久a久久综合| 亚洲在线视频播放| 亚洲成人av片| 1024国产在线| 午夜精品一区二区三区在线视| 户外露出一区二区三区| 97视频中文字幕| 国产欧美日韩在线观看视频| 91免费视频黄| 老司机免费视频久久| 自拍偷拍激情视频| 欧美激情一区二区三区四区| 色在线观看视频| 色综合 综合色| 丰满少妇高潮在线观看| 在线激情影院一区| 丁香花视频在线观看| 国产日韩在线一区| 久久99久久人婷婷精品综合| 黄色一级大片免费| 久久精品国产99| 久久只有这里有精品| 夜夜精品视频一区二区 | 91精品国产欧美一区二区| 日韩精品系列| 欧美国产日韩二区| 国产精品黄色片| 久久国产日韩欧美| 精品动漫一区| 性生活一级大片| 国产精品久久久久久亚洲毛片| 久久久久久91亚洲精品中文字幕| 精品少妇一区二区三区免费观看| 午夜伦理在线| 国产精品精品久久久| 你微笑时很美电视剧整集高清不卡| 欧美日韩激情四射| 久久精品99国产精品| 在线小视频你懂的| 欧美网站在线观看| 五月婷婷深深爱| 欧美黑人极品猛少妇色xxxxx| 午夜精品久久久久久毛片| 日产国产精品精品a∨| 久久成人亚洲| 无码人妻aⅴ一区二区三区| 亚洲一级在线观看| 亚洲精品18在线观看| 欧美日韩国产91| 美女久久精品| 青青青在线观看视频| 欧美猛男男男激情videos| 午夜精品久久久久久久久久| www青青草原| 欧美日韩视频第一区| 久久精品蜜桃| 日本久久91av| 欧美男同视频网| 欧美激情精品久久久久久小说| 91蜜桃传媒精品久久久一区二区| 日本一区二区免费在线观看| 337p日本欧洲亚洲大胆精品| 91色在线看| 精品一区在线播放| 亚洲欧美网站| 97人妻人人揉人人躁人人| 欧美性极品少妇| 日本成人在线播放| 91精品网站| 99精品99| a级在线免费观看| 在线观看网站黄不卡| 99精品老司机免费视频| 国产在线视频一区| 欧美a级片网站| 中文字幕三级电影| 精品福利在线视频| 天堂av在线免费观看| 国产精欧美一区二区三区| 日韩精品免费一区二区三区| 一级黄色在线播放| 亚洲一区二区黄色| 欧美色18zzzzxxxxx| 国产精品久久久| 羞羞答答成人影院www| 国产国语老龄妇女a片| 精品久久在线播放| 午夜免费视频在线国产| 亚洲精品欧美一区二区三区| 亚洲精品少妇| 黄色三级生活片| 欧美va在线播放| 成人免费影院| 在线视频精品一区| 波多野结衣中文字幕一区| 无码人妻丰满熟妇奶水区码| 日韩亚洲一区二区| 国产精品网址| 久热精品在线播放| 亚洲网友自拍偷拍| bbbbbbbbbbb在线视频| 成人自拍视频网站| 日本大胆欧美人术艺术动态| 男女性高潮免费网站| 精品视频在线播放免| 国产精品成人**免费视频| 黄色网页免费在线观看| 中文字幕在线不卡一区二区三区 | 精品国产免费人成在线观看| 国产精品粉嫩| 日产精品久久久久久久蜜臀| 久久蜜桃一区二区| 成人1区2区3区| 国产精品久久二区| 国产视频一区欧美| 印度午夜性春猛xxx交|