深入解析Spring Boot中的@ConfigurationProperties注解
在Spring Boot框架中,配置管理是一個核心功能。Spring Boot提供了多種方式來處理外部配置,其中@ConfigurationProperties注解是一個非常強(qiáng)大且靈活的工具。本文將深入探討@ConfigurationProperties注解的概念、用法、工作原理、配置綁定、類型安全以及如何在實(shí)際開發(fā)中應(yīng)用它。
什么是@ConfigurationProperties?
@ConfigurationProperties是Spring Boot提供的一個注解,用于將外部配置屬性綁定到Java對象上。通過使用這個注解,開發(fā)者可以將配置文件(如application.properties或application.yml)中的屬性值自動映射到Java類的字段上,從而實(shí)現(xiàn)配置的集中管理和類型安全。
@ConfigurationProperties的作用
- 配置綁定:將配置文件中的屬性值綁定到Java類的字段上,實(shí)現(xiàn)配置的自動映射。
- 類型安全:提供類型安全的配置綁定,避免類型轉(zhuǎn)換錯誤。
- 復(fù)雜配置:支持復(fù)雜配置結(jié)構(gòu)的綁定,如嵌套對象、集合、Map等。
- 配置校驗(yàn):結(jié)合
@Valid注解,實(shí)現(xiàn)配置屬性的校驗(yàn)。
@ConfigurationProperties的基本用法
1. 定義配置類
首先,定義一個Java類,用于綁定配置屬性。使用@ConfigurationProperties注解標(biāo)記該類,并指定前綴(prefix)。
示例代碼:
package com.yicrm.biz.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
* <p>
* uops-service配置
* </p>
*
* @author zhaozhijun
* @since 2026-01-07
*/
@Data
@Component
@ConfigurationProperties(prefix = "media-service")
public class MediaServiceConfig {
//短視頻路徑
private String path;
//短視頻路徑-特殊租戶
private String path2;
//直播路徑
private String broadcastPath;
private String broadcastPath2;
//token
private String token;
private String userId;
private String companyId;
}
解釋:
@ConfigurationProperties(prefix = "app"):指定配置屬性的前綴為app。@Component:將該類注冊為Spring Bean,使其可以被Spring容器管理。
2. 配置文件
在application.properties或application.yml文件中定義配置屬性。
示例代碼(application.properties):
media-service: path: https://***.ai/media-service/internal/dataApi/video/getCompanyCoreMetrics token: a5a6ae52b97f08e6847bbaf9bc054c13af797525 userId: 3569 companyId: 311
3. 啟用配置屬性支持
在Spring Boot應(yīng)用的主類或配置類上,使用@EnableConfigurationProperties注解啟用配置屬性支持。
package com.yicrm;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
/**
* 啟動程序
*/
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
@EnableConfigurationProperties(AppProperties.class)
public class YiCrmApplication {
public static void main(String[] args) {
// System.setProperty("spring.devtools.restart.enabled", "false");
// 關(guān)閉 PageHelper banner
System.setProperty("pagehelper.banner", "false");
// // 設(shè)置無頭模式,避免在無圖形界面的服務(wù)器環(huán)境中出現(xiàn) X11FontManager 初始化錯誤
// System.setProperty("java.awt.headless", "true");
SpringApplication.run(YiCrmApplication.class, args);
System.out.println("(????)?? YI-CRM啟動成功 ?(′?`?)?");
}
}
到此這篇關(guān)于深入解析Spring Boot中的@ConfigurationProperties注解的文章就介紹到這了,更多相關(guān)SpringBoot @ConfigurationProperties內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot中@ConfigurationProperties注解的使用與源碼詳解
- SpringBoot @ConfigurationProperties使用詳解
- springboot中@ConfigurationProperties無效果的解決方法
- SpringBoot @ConfigurationProperties注解的簡單使用
- springboot如何靜態(tài)加載@configurationProperties
- springboot @ConfigurationProperties和@PropertySource的區(qū)別
- SpringBoot中@ConfigurationProperties 配置綁定
- SpringBoot中@ConfigurationProperties實(shí)現(xiàn)配置自動綁定的方法
- SpringBoot中的@ConfigurationProperties注解的使用
相關(guān)文章
SpringBoot登錄認(rèn)證前后端實(shí)現(xiàn)方案:SpringBoot + Mybatis +&
本文展示如何在Spring生態(tài)系統(tǒng)中整合IOC/DI、MyBatis、MD5加密、Session/Cookie管理、JWT令牌和攔截器,以實(shí)現(xiàn)一個企業(yè)級的認(rèn)證方案,前端使用HTML/CSS/JavaScript/JQuery,后端使用SpringBoot+MyBatis+JWT,通過統(tǒng)一返回結(jié)果封裝和圖形驗(yàn)證碼,提高了API的可維護(hù)性和安全性2025-10-10
Java中的SynchronousQueue阻塞隊(duì)列及使用場景解析
這篇文章主要介紹了Java中的SynchronousQueue阻塞隊(duì)列及使用場景解析,SynchronousQueue 是 Java 中的一個特殊的阻塞隊(duì)列,它的主要特點(diǎn)是它的容量為0,這意味著 SynchronousQueue不會存儲任何元素,需要的朋友可以參考下2023-12-12
java中hashmap的底層數(shù)據(jù)結(jié)構(gòu)與實(shí)現(xiàn)原理
Hashmap是java面試中經(jīng)常遇到的面試題,大部分都會問其底層原理與實(shí)現(xiàn),本人也是被這道題問慘了,為了能夠溫故而知新,特地寫了這篇文章,以便時時學(xué)習(xí)2021-08-08
Mac使用Idea配置傳統(tǒng)SSM項(xiàng)目(非maven項(xiàng)目)
本文主要介紹了Mac使用Idea配置傳統(tǒng)SSM項(xiàng)目(非maven項(xiàng)目),將展示如何設(shè)置項(xiàng)目結(jié)構(gòu)、添加依賴關(guān)系等,具有一定的參考價值,感興趣的可以了解一下2024-01-01

