SpringBoot安全讀取properties

在SpringBoot項目中,我們經(jīng)常會將一些參數(shù)放在配置文件中(.properties或.yml),然后通過@value 注解獲取配置的值。

但如果參數(shù)字段很多,這種方式就顯得不那么方便了:

  • 參數(shù)字段在哪里使用,是否必須不清晰,需要全局搜索查看使用的地方;
  • 參數(shù)key容易拼寫錯誤;

實際上SpringBoot提供了更加方便的方式:@ConfigurationProperties 注解可以將自定義參數(shù)導入到實體對象中。

首先我們定義一個bean,并添加注解:

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

@Component
@ConfigurationProperties(prefix = "aib")
public class AIBProperties {
    private String msg;

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }
}

添加了@Component和@ConfigurationProperties之后,SpringBoot或自動掃描到這個類,當需要實例化這個對象時,自動將對應的參數(shù)aib.msg的設置到這個對象中。

在IDEA中會出現(xiàn)下面警告:

提示.png

是提示你添加一個依賴:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

添加玩依賴之后,提示會變成:

提示2.png

這個時候已經(jīng)可以了,我們reBuild一下項目:

reBuild.png

build完成我們可以在target/class/META-INF/包下看到一個.json文件:

metadata.png

有了這個文件配合IDEA就可以實現(xiàn)提示效果:

hint.png

使用properties只需要注入bean即可:

    @Autowired
    AIBProperties properties;

    @GetMapping
    public String test() {
        return properties.getMsg();
    }

這樣做的好處:

  • 參數(shù)在一個bean中同一管理;
  • 直接設置默認值;
  • 參數(shù)key提示;
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • SpringBoot基礎 學習目標: 能夠理解Spring的優(yōu)缺點 能夠理解SpringBoot的特點 能夠理解S...
    dwwl閱讀 5,527評論 4 81
  • SpringMVC原理分析 Spring Boot學習 5、Hello World探究 1、POM文件 1、父項目...
    jack_jerry閱讀 1,489評論 0 1
  • 文章作者:Tyan博客:noahsnail.com | CSDN | 簡書 24. Externalized Co...
    SnailTyan閱讀 2,139評論 1 2
  • 初遇 清晨,一切都靜靜的,只有鳥兒在枝頭歌唱。就連一向很勤快的梁云浩都在睡這懶覺。 “砰!”一聲巨響從梁云...
    空影零閱讀 211評論 0 0
  • 為什么ü遇到Y(jié)jqx兩點要拿掉,而遇到nl不用拿掉呢?且聽祎丫怎么說。 故事從祎丫最喜歡的動畫片《賽爾號》開始。賽...
    上官書函閱讀 2,924評論 0 2

友情鏈接更多精彩內(nèi)容