如何使用@ConfigurationProperties註解配置屬性

一、什麼是@ConfigurationProperties註解

@ConfigurationProperties註解是Spring Boot提供的一種綁定自定義屬性的方式。使用該註解可以將屬性文件中的屬性值綁定到Java對象上,從而方便的使用這些屬性值。

在Spring Boot中,通常有兩種類型的屬性文件:application.properties和application.yml。通過@ConfigurationProperties註解可以將屬性文件中的屬性值綁定到Java Bean上,然後使用該Bean來讀取屬性值。

二、如何使用@ConfigurationProperties註解

使用@ConfigurationProperties註解綁定屬性值的過程非常簡單,只需要在Java Bean中添加@ConfigurationProperties註解,並指定屬性文件中屬性的前綴即可。

@ConfigurationProperties(prefix = "example")
public class ExampleProperties {
    private String name;
    private String description;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }
}

在上面的示例中,@ConfigurationProperties註解的prefix屬性值為“example”,因此Bean中的屬性就會自動綁定以“example.”開頭的屬性值。

另外,在使用@ConfigurationProperties註解時還需要加入@Component或@Configuration註解,讓Spring Boot能夠掃描該Bean並創建相應的實例。

三、綁定屬性值的方式

在@ConfigurationProperties註解中,可以通過以下幾種方式來綁定屬性值:

1、直接綁定

直接將屬性值綁定到Java Bean的屬性上。

@ConfigurationProperties(prefix = "example")
public class ExampleProperties {
    private String name;
    private String description;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }
}

2、使用@Value註解綁定

使用@Value註解將屬性值綁定到Java Bean的屬性上。

@ConfigurationProperties(prefix = "example")
public class ExampleProperties {
    @Value("${example.name}")
    private String name;
    @Value("${example.description}")
    private String description;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }
}

3、使用Constructor Binding綁定

使用Constructor Binding將屬性值綁定到Java Bean的構造函數入參中。

@ConfigurationProperties(prefix = "example")
public class ExampleProperties {
    private String name;
    private String description;

    public ExampleProperties(String name, String description) {
        this.name = name;
        this.description = description;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }
}

在使用Constructor Binding時,需要添加一個帶有@Configuration的配置類,並在該類中使用@ConfigurationPropertiesScan註解指定要掃描的Java Bean。

@Configuration
@ConfigurationPropertiesScan(basePackageClasses = ExampleProperties.class)
public class ExampleConfiguration {
}

四、屬性值校驗

在@ConfigurationProperties中,可以使用JSR-303 Bean Validation機制對屬性值進行校驗。

@ConfigurationProperties(prefix = "example")
public class ExampleProperties {
    @NotEmpty
    private String name;
    @NotBlank
    private String description;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }
}

在上面的示例中,使用了@NotEmpty和@NotBlank註解對屬性值進行了校驗,如果值為空則會拋出異常。

五、總結

本文詳細介紹了如何使用@ConfigurationProperties註解綁定屬性值,並且圍繞該註解展開了多個方面的講解,包括如何使用三種不同方式綁定屬性值以及如何進行屬性值校驗等。通過學習本文,讀者不僅了解了@ConfigurationProperties註解的使用方法,更可以通過該註解快速、方便地管理應用程序中的屬性值。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/297628.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-28 12:16
下一篇 2024-12-28 12:16

相關推薦

  • 如何使用Python獲取某一行

    您可能經常會遇到需要處理文本文件數據的情況,在這種情況下,我們需要從文本文件中獲取特定一行的數據並對其進行處理。Python提供了許多方法來讀取和處理文本文件中的數據,而在本文中,…

    編程 2025-04-29
  • 如何使用jumpserver調用遠程桌面

    本文將介紹如何使用jumpserver實現遠程桌面功能 一、安裝jumpserver 首先我們需要安裝並配置jumpserver。 $ wget -O /etc/yum.repos…

    編程 2025-04-29
  • 如何使用Python讀取CSV數據

    在數據分析、數據挖掘和機器學習等領域,CSV文件是一種非常常見的文件格式。Python作為一種廣泛使用的編程語言,也提供了方便易用的CSV讀取庫。本文將介紹如何使用Python讀取…

    編程 2025-04-29
  • Hibernate註解聯合主鍵 如何使用

    解答:Hibernate的註解方式可以用來定義聯合主鍵,使用@Embeddable和@EmbeddedId註解。 一、@Embeddable和@EmbeddedId註解 在Hibe…

    編程 2025-04-29
  • 如何使用random生成不重複的隨機數

    在編程開發中,我們經常需要使用隨機數來模擬一些場景或生成一些數據。但是如果隨機數重複,就會造成數據的不準確性。這時我們就需要使用random庫來生成不重複且隨機的數值。下面將從幾個…

    編程 2025-04-29
  • 如何使用HTML修改layui內部樣式影響全局

    如果您想要使用layui來構建一個美觀的網站或應用,您可能需要使用一些自定義CSS來修改layui內部組件的樣式。然而,修改layui組件的樣式可能會對整個頁面產生影響,甚至可能破…

    編程 2025-04-29
  • 如何使用GPU加速運行Python程序——以CSDN為中心

    GPU的強大性能是眾所周知的。而隨着深度學習和機器學習的發展,越來越多的Python開發者將GPU應用於深度學習模型的訓練過程中,提高了模型訓練效率。在本文中,我們將介紹如何使用G…

    編程 2025-04-29
  • 理解agentmain方法如何使用

    如果你不清楚如何使用agentmain方法,那麼這篇文章將會為你提供全面的指導。 一、什麼是agentmain方法 在Java SE 5.0中,Java提供了一個機制,允許程序員在…

    編程 2025-04-29
  • 如何使用Python導入Random庫

    Python是一門優秀的編程語言,它擁有豐富的第三方庫和模塊。其中,Random庫可謂是最常用的庫之一,它提供了用於生成隨機數的功能。對於開發人員而言,使用Random庫能夠提高開…

    編程 2025-04-29
  • 全面解讀數據屬性r/w

    數據屬性r/w是指數據屬性的可讀/可寫性,它在程序設計中扮演着非常重要的角色。下面我們從多個方面對數據屬性r/w進行詳細的闡述。 一、r/w的概念 數據屬性r/w即指數據屬性的可讀…

    編程 2025-04-29

發表回復

登錄後才能評論