精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

久久精品亚洲国产| 精品人伦一区二区三区蜜桃网站 | 亚洲精品videossex少妇| 免费欧美一级视频| av中文天堂在线| 国产精品一区二区久激情瑜伽| 欧美国产日本在线| 欧美黄色一级生活片| 亚洲综合网狠久久| 欧美午夜宅男影院| 亚洲熟妇无码一区二区三区| 69久久久久| 99久久精品国产导航| 国产欧美一区二区三区在线看| 青青草激情视频| 欧美日韩老妇| 欧美一区二区三区四区高清| 国产日韩一区二区在线| 成人免费视屏| 日本一区二区高清| 久久99九九| 精品国产无码一区二区三区| 久久久国产精品一区二区中文| 欧美精品手机在线| 日本 欧美 国产| 经典一区二区| 亚洲国产欧美在线成人app | 久久久999久久久| 一本一本久久| 久久久久久九九九| 91 在线视频| 日韩在线综合| 一区二区三区黄色| 精品无码人妻一区| 欧美日韩导航| 亚洲国产精品va在线观看黑人| 午夜视频在线观| 国产69精品久久| 91精品1区2区| 日韩免费高清在线| 另类激情视频| 日本韩国精品在线| 男人亚洲天堂网| 在线观看爽视频| 欧美丝袜一区二区三区| 日本a在线免费观看| 免费av不卡在线观看| 亚洲狠狠丁香婷婷综合久久久| 国产成年人在线观看| 婷婷五月在线视频| 亚洲欧美在线另类| 色乱码一区二区三区熟女| 在线观看免费版| 成人免费在线视频| 激情视频小说图片| 欧美1234区| 亚洲午夜激情av| 成人中文字幕在线播放| 国产精选在线| 色婷婷综合在线| 黄色一级二级三级| 午夜无码国产理论在线| 欧美系列日韩一区| 亚洲在线观看网站| 成人自拍在线| 精品爽片免费看久久| 性久久久久久久久久| 精品理论电影| 久久精品国产综合| 精品一区二区三区四| 日韩视频一区二区三区在线播放免费观看| 91av视频在线| 最近中文字幕在线观看| 极品销魂美女一区二区三区| 亚洲一区二区久久久久久久| 黄色av一区二区三区| 26uuu色噜噜精品一区| 色女人综合av| 在线中文字幕视频观看| 亚洲成人自拍偷拍| 国产精品亚洲二区在线观看| 久久精品超碰| 亚洲成人黄色在线| 熟女少妇内射日韩亚洲| 一区二区蜜桃| 欧美亚洲日本网站| ,亚洲人成毛片在线播放| 成人做爰69片免费看网站| 欧美激情一区二区三区在线视频 | 激情小说一区| 伊人男人综合视频网| 欧美人妻一区二区| 日韩中文字幕亚洲一区二区va在线| 国产有码在线一区二区视频| 秋霞av鲁丝片一区二区| 国产精品青草久久| 亚洲 自拍 另类小说综合图区| 国产福利亚洲| 日韩国产高清视频在线| 国产中文字幕久久| 免费久久99精品国产自在现线| 国产在线观看精品| 免费毛片在线| 亚洲午夜久久久久中文字幕久| 免费裸体美女网站| 红杏aⅴ成人免费视频| 中文字幕亚洲欧美在线| 日韩成人av毛片| 国内精品在线播放| 热re99久久精品国99热蜜月| 欧美人与牲禽动交com| 欧美在线观看一区二区| 中文文字幕文字幕高清| 亚洲一级淫片| 国产精品三级美女白浆呻吟| 色欲av永久无码精品无码蜜桃| 中文字幕在线观看一区| 国产综合免费视频| 国产福利一区二区精品秒拍| 日韩中文字幕亚洲| 中文字幕久久熟女蜜桃| 久久久精品中文字幕麻豆发布| 久久这里只有精品8| 永久免费观看精品视频| 亚洲性生活视频| 好吊操这里只有精品| 成人视屏免费看| 男人草女人视频| 一区在线不卡| 久久影视电视剧免费网站| 91丨九色丨海角社区| 久久免费视频一区| 内射国产内射夫妻免费频道| 91精品日本| 欧美激情视频在线观看| 国产视频在线观看视频| 国产精品久久久久桃色tv| chinese少妇国语对白| 亚洲精品国模| 欧美一区二区三区图| 天天操天天干天天爽| 天天综合天天综合色| 国产免费一区二区三区最新6| 欧美午夜精品| 国产视频精品网| 超碰资源在线| 日韩精品视频免费专区在线播放| 国产精品7777777| 99re免费视频精品全部| 日韩免费视频播放| 亚洲区小说区图片区qvod| 欧美一性一乱一交一视频| 日韩欧美在线番号| 日本道精品一区二区三区| www.色天使| 免费在线看一区| 亚洲精品日韩精品| 日本亚洲欧洲无免费码在线| 久久亚洲精品中文字幕冲田杏梨| 国产视频手机在线观看| 一区二区成人在线视频| 四虎精品一区二区| 香蕉久久夜色精品国产| 视频一区视频二区视频三区视频四区国产 | 亚洲成人77777| 午夜av电影一区| 91精品人妻一区二区三区蜜桃欧美| 久久国产高清| 中文字幕中文字幕在线中心一区| 久久天堂久久| 91黑丝在线观看| 国产裸舞福利在线视频合集| 欧美三级韩国三级日本三斤| 五月天婷婷色综合| a亚洲天堂av| wwwwxxxx日韩| 欧美日本精品| 热re99久久精品国产99热| 亚洲资源在线| 欧美在线激情网| 日本视频在线免费观看| 精品国产一区二区国模嫣然| 性色av免费观看| 亚洲视频一区二区免费在线观看| 2一3sex性hd| 蜜臂av日日欢夜夜爽一区| 国产又粗又猛又爽又黄的网站| 琪琪久久久久日韩精品| 国产免费一区视频观看免费| 菠萝菠萝蜜在线观看| 精品视频在线播放免| 国产精品久久婷婷| 欧美日韩激情视频8区| 在线免费看av网站| 91美女福利视频| 在线观看一区二区三区视频| 久久精品首页| 久久这里只有精品18| 欧美限制电影| 国语精品免费视频| 在线成人免费| 国产精品1区2区在线观看| 欧美78videosex性欧美| 日日噜噜噜夜夜爽亚洲精品| 天天在线女人的天堂视频| 在线综合亚洲欧美在线视频| 一本一道无码中文字幕精品热| 亚洲精品成人精品456| 无码人妻丰满熟妇啪啪欧美| 成人av在线观| 亚洲高清av一区二区三区| 久久久精品性| 欧美二区在线视频| 欧美激情五月| 中文字幕在线亚洲精品| 国产a久久精品一区二区三区| 国产精品对白刺激久久久| 中文成人在线| 国产精品一区二区三区在线播放| 美女100%一区| 7777精品视频| 538在线精品| 久久99热精品| 综合图区亚洲| 久久国产精品久久久久久| 日本综合在线| 日韩中文在线观看| 成年人视频免费在线观看| 亚洲精品自产拍| 亚洲 欧美 激情 小说 另类| 精品国产乱码久久久久久免费 | 94色蜜桃网一区二区三区| 日本黄色大片在线观看| 国产一区二区三区在线观看免费视频| 亚洲 欧美 日韩系列| 丝袜国产日韩另类美女| 青青在线视频观看| 久久久久久一区二区| 国产成人无码精品久久久性色| 亚洲美洲欧洲综合国产一区| 男人插女人视频在线观看| 亚洲承认在线| 18禁男女爽爽爽午夜网站免费 | 中文字幕第一页在线视频| 秋霞电影一区二区| 色片在线免费观看| 久久se这里有精品| 午夜免费福利网站| 国产成人aaaa| a级一a一级在线观看| 97se亚洲国产综合自在线| 泷泽萝拉在线播放| 国产亚洲综合性久久久影院| 99精品欧美一区二区| 国产精品久久久久一区二区三区共 | 国产女同91疯狂高潮互磨| 3atv在线一区二区三区| 性网爆门事件集合av| 亚洲国产精品成人av| 欧美日韩国产中文字幕在线| 国产一区二区黑人欧美xxxx| 日本中文在线| 久久久久久999| 成人教育av| 国产欧美日韩中文字幕在线| 国产一区二区三区亚洲综合| 成人av资源| 精品福利二区三区| 日韩 国产 一区| 国产精品99久久久| 毛茸茸free性熟hd| 久久婷婷国产综合精品青草 | 成人av在线一区二区三区| 国产成人无码一区二区在线观看| 久久噜噜亚洲综合| 国产性生活大片| 亚洲成人动漫一区| 看黄色一级大片| 日韩欧美一区二区三区在线| 国产 欧美 自拍| 亚洲欧美日韩另类| 乱人伦中文视频在线| 久久久久久久亚洲精品| 欧美动物xxx| 91麻豆桃色免费看| 天海翼亚洲一区二区三区| 亚洲一区二区三区免费看| 亚洲高清久久| 亚洲免费999| 91色porny在线视频| 久久视频精品在线| av在线私库| 国产在线精品播放| 五月天亚洲色图| 老司机午夜免费福利视频| 香蕉久久久久久久av网站| 四虎成人在线播放| 国产丝袜欧美中文另类| 久一视频在线观看| 欧美日韩三级一区二区| 可以免费看毛片的网站| 日韩中文字幕精品| 成人免费直播| 国产精品成人一区二区三区| 色无极亚洲影院| 欧美国产亚洲一区| 成人免费视频caoporn| 亚洲欧美日韩第一页| 精品国产鲁一鲁一区二区张丽| 国产乱淫a∨片免费观看| 亚洲无线码在线一区观看| 欧美videos另类精品| 成人字幕网zmw| 成人网18免费网站| 国产最新免费视频| 成人精品一区二区三区中文字幕| 永久免费未视频| 在线观看免费视频综合| 午夜国产在线视频| 久久久久久中文字幕| japansex久久高清精品| 日韩午夜视频在线观看| 午夜亚洲性色福利视频| 久久午夜夜伦鲁鲁片| 亚洲亚洲精品在线观看| 国产福利第一视频| 久久久精品在线| 欧美成人高清视频在线观看| 日韩精品一区二区三区色偷偷 | 狠狠躁狠狠躁视频专区| 91看片淫黄大片一级在线观看| 日韩精品在线免费看| 精品欧美乱码久久久久久1区2区| 超碰在线caoporn| 亚洲字幕一区二区| 欧美日本不卡高清| 国产免费无码一区二区| 亚洲激情自拍视频| 动漫av一区二区三区| 久久久欧美一区二区| 精品淫伦v久久水蜜桃| 免费看国产曰批40分钟| av一二三不卡影片| 精品无码人妻一区二区三区| 亚洲第一二三四五区| www欧美xxxx| 国产一区在线免费观看| 在线视频免费在线观看一区二区| 亚洲婷婷在线观看| 午夜精品一区二区三区免费视频 | 免费无码av片在线观看| 久久综合色综合88| 91青青草视频| 日韩在线视频观看正片免费网站| 日本中文字幕视频一区| 免费看污污视频| 成人综合婷婷国产精品久久蜜臀| 国产情侣自拍av| 国产一区二区三区在线免费观看| 激情小说亚洲| 麻豆传媒网站在线观看| 成人三级伦理片| 成人a v视频| 久久影视电视剧免费网站| 国产精品色在线网站| 欧美成人免费高清视频| 国产精品美女久久久久久| av小说天堂网| 91wwwcom在线观看| 日韩a一区二区| 少妇献身老头系列| 色婷婷av一区二区三区之一色屋| 日韩大片在线永久免费观看网站| 99精品欧美一区二区三区| 野花国产精品入口| 久久久久久成人网| 精品国产乱码久久久久久久| 厕沟全景美女厕沟精品| 国产91av视频在线观看| 不卡一区二区三区四区| 黄色av网站免费| 欧美精品免费在线| 国产精品免费不| 亚洲国产精品第一页| 在线亚洲精品福利网址导航| 成人影院www在线观看| 久久精品ww人人做人人爽| 精品一区二区在线视频| 天天操天天爽天天干| www.国产精品一二区| 午夜a一级毛片亚洲欧洲| 第一区免费在线观看| 日韩欧美极品在线观看| av软件在线观看| 日韩精品国内| 99麻豆久久久国产精品免费 | 亚洲国产尤物| 91九色丨porny丨国产jk| 中文字幕在线免费不卡| 狠狠v欧美ⅴ日韩v亚洲v大胸|