@ConfigurationProperties及@NestedConfigurationProperty的使用解讀
更新時(shí)間:2026年02月05日 16:46:41 作者:哀愁
本文分享了如何在Spring Boot應(yīng)用中使用`@ConfigurationProperties`和`@NestedConfigurationProperty`進(jìn)行屬性綁定,提供了一個(gè)自定義配置的示例,并附帶個(gè)人經(jīng)驗(yàn)供參考
創(chuàng)建一個(gè)springboot應(yīng)用(默認(rèn)忽略)
application.properties的自定義配置
spring.datasources.test.username=admin spring.datasources.test.password=123456 spring.datasources.test.url=url spring.datasources.test.driver=com.mysql spring.datasources.duration=5
@ConfigurationProperties以及@NestedConfigurationProperty
使用進(jìn)行屬性綁定
package com.mn.properties;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.NestedConfigurationProperty;
import org.springframework.boot.convert.DurationUnit;
import org.springframework.stereotype.Component;
import java.time.Duration;
import java.time.temporal.ChronoUnit;
/**
* @description 第一種綁定配置文件的方式
* @NestedConfigurationProperty 嵌套配置屬性
* 如果在綁定屬性文件的類中 的屬性是外部的類(不是在本類中)
* 那么就可以使用這個(gè)嵌套屬性類解決
* 需要注意的是
* 配置文件是 :
* spring.datasources.test.username=admin
* spring.datasources.test.password=123456
* spring.datasources.test.url=url
* spring.datasources.test.driver=com.mysql
* 那么 @ConfigurationProperties 前綴是spring.datasource
* @NestedConfigurationProperty 標(biāo)注的屬性上的屬性名稱 必須是 test
* <p>
* 詳解:
* @ConfigurationProperties(value = "spring.datasources", ignoreInvalidFields = true, ignoreUnknownFields = false)
* value 代表的是配置文件中的前綴
* ignoreInvalidFields 表示忽略無效的字段 當(dāng)我們?yōu)閷傩耘渲缅e(cuò)誤時(shí),我們不希望springboot程序啟動失敗 故此設(shè)置為false
* ignoreUnknownFields 表示忽略未知的字段 默認(rèn)是true 當(dāng)我們配置的屬性沒有綁定到 @ConfigurationProperties這個(gè)類時(shí),我們希望程序報(bào)錯(cuò)
**/
@Data
@ConfigurationProperties(value = "spring.datasources", ignoreInvalidFields = true, ignoreUnknownFields = false)
@Component
public class DataSourceProperties {
@NestedConfigurationProperty
private DataSource test;
/**
* 不寫單位默認(rèn)按照毫秒
*/
@DurationUnit(ChronoUnit.DAYS)
private Duration duration;
}
用到的綁定類
@Data
public class DataSource {
private String url;
private String username;
private String password;
private String driver;
}
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- 將SpringBoot屬性配置類@ConfigurationProperties注冊為Bean的操作方法
- SpringBoot @ConfigurationProperties + Validation實(shí)現(xiàn)啟動期校驗(yàn)解決方案
- 解讀@ConfigurationProperties和@value的區(qū)別
- springboot使用@ConfigurationProperties實(shí)現(xiàn)自動綁定配置參數(shù)屬性
- 解讀@ConfigurationProperties的基本用法
- SpringBoot中的@ConfigurationProperties注解的使用
- SpringBoot中@ConfigurationProperties自動獲取配置參數(shù)的流程步驟
相關(guān)文章
Springboot修改post請求接口入?yún)⒒蛑匦沦x值方式
這篇文章主要介紹了Springboot修改post請求接口入?yún)⒒蛑匦沦x值方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-05-05
mybatis generator只能生成insert和selectAll的操作
這篇文章主要介紹了mybatis generator只能生成insert和selectAll的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09
MyBatisPlus如何優(yōu)化千萬級數(shù)據(jù)的CRUD
最近負(fù)責(zé)的一個(gè)項(xiàng)目,數(shù)據(jù)庫表量級破千萬,每次執(zhí)行 CRUD 都像走鋼絲,稍有不慎就引起數(shù)據(jù)庫報(bào)警,本文就結(jié)合這個(gè)項(xiàng)目的實(shí)戰(zhàn)經(jīng)驗(yàn),聊聊 MyBatis Plus在千萬級數(shù)據(jù)場景下如何優(yōu)化 CRUD2025-06-06
統(tǒng)一建模語言_動力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了統(tǒng)一建模語言的相關(guān)知識,非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下吧2017-06-06
centos7中如何優(yōu)雅的動態(tài)切換jdk版本實(shí)例詳解
這篇文章主要介紹了CentOS7安裝多版本jdk并切換jdk版本的完整步驟,文中通過代碼詳細(xì)介紹使用alternatives命令管理多個(gè)JDK版本,步驟包括安裝不同JDK、配置alternatives及切換版本驗(yàn)證,需要的朋友可以參考下2026-06-06
優(yōu)化Java內(nèi)存管理來防止“GC”錯(cuò)誤的方法詳解
垃圾回收(GC)是 Java 中的一個(gè)重要機(jī)制,它可以管理內(nèi)存并回收不再使用的對象所占用的資源,在本文中,我們將探討一些技巧,幫助您避免這一錯(cuò)誤,確保您的 Java 應(yīng)用程序順利運(yùn)行,需要的朋友可以參考下2023-11-11
Shiro實(shí)現(xiàn)session限制登錄數(shù)量踢人下線功能
這篇文章主要介紹了Shiro實(shí)現(xiàn)session限制登錄數(shù)量踢人下線,本文記錄的是shiro采用session作為登錄方案時(shí),對用戶進(jìn)行限制數(shù)量登錄,以及剔除下線,需要的朋友可以參考下2023-11-11

