最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中@ConfigurationProperties實(shí)現(xiàn)自定義配置綁定問(wèn)題分析

 更新時(shí)間:2021年08月23日 10:01:15   作者:Acelin_H''''s Blog  
這篇文章主要介紹了@ConfigurationProperties實(shí)現(xiàn)自定義配置綁定問(wèn)題,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

@ConfigurationProperties使用

創(chuàng)建一個(gè)類,類名上方注解,配置prefix屬性,如下代碼:

@ConfigurationProperties(
        prefix = "hello.properties"
)
public class MyProperties {

    private String myKey;
    private List<String> stringList;
    private Duration duration;

    public String getMyKey() {
        return myKey;
    }

    public void setMyKey(String myKey) {
        this.myKey = myKey;
    }

    public List<String> getStringList() {
        return stringList;
    }

    public void setStringList(List<String> stringList) {
        this.stringList = stringList;
    }

    public Duration getDuration() {
        return duration;
    }

    public void setDuration(Duration duration) {
        this.duration = duration;
    }

    @Override
    public String toString() {
        return "MyProperties{" +
                "myKey='" + myKey + '\'' +
                ", stringList=" + stringList +
                ", duration=" + duration +
                '}';
    }
}

prefix屬性是配置文件里的前綴,即配置文件中以前綴 + 變量名的形式配置一條記錄,來(lái)對(duì)應(yīng)類中的一個(gè)變量,如下:

hello.properties.myKey=hello
hello.properties.duration=20s
hello.properties.string-list[0]=Acelin
hello.properties.string-list[1]=nice

@ConfigurationProperties特點(diǎn)

寬松綁定

如下配置都是可以被識(shí)別綁定的:

hello.properties.myKey=hello
hello.properties.mykey=hello
hello.properties.my-key=hello
hello.properties.my_key=hello
hello.properties.MY_KEY=hello
hello.properties.MY-KEY=hello

支持復(fù)雜屬性類型

支持從配置參數(shù)中解析 durations (持續(xù)時(shí)間)

hello.properties.duration=20s

List 和 Set

hello.properties.string-list[0]=Acelin
hello.properties.string-list[1]=nice

激活@ConfigurationProperties

通過(guò)@EnableConfigurationProperties

如果一個(gè)配置類只單單用@ConfigurationProperties注解,那么在IOC容器中是獲取不到properties 配置文件轉(zhuǎn)化的bean。我們可以在想要使用該配置類的類上注解@EnableConfigurationProperties,并配置相關(guān)的類,即可拿到該裝配好配置的類了。如下所示:

通過(guò)@ConfigurationPropertiesScan

該注解有點(diǎn)類似與@CompomentScan注解掃描@Compoment注釋的類相似,也是用來(lái)掃描項(xiàng)目中@ConfigurationProperties注解的類,并注入spring容器中。只需將該注解注釋于項(xiàng)目啟動(dòng)類上即可

其實(shí)@ConfigurationProperties更多的作用是將配置文件中的配置與類中變量對(duì)應(yīng)上來(lái),而上述兩種方式是告訴Spring容器要把這個(gè)有配置特性的Bean在程序啟動(dòng)的時(shí)候給創(chuàng)建出來(lái)。那談到的創(chuàng)建Bean,我們就會(huì)想到Spring創(chuàng)建Bean的各種方式,這些方式的同樣能夠激活@ConfigurationProperties,詳細(xì)請(qǐng)看Spring Boot創(chuàng)建Bean的幾種方式

@ConfigurationProperties與@Value對(duì)比

- @ConfigurationProperties @Value
功能 批量注入配置文件中的屬性 一個(gè)個(gè)指定
松散綁定(松散語(yǔ)法) 支持 不支持
SpEL 不支持 支持
JSR303數(shù)據(jù)效驗(yàn) 支持 不支持
復(fù)雜類型封裝 支持

使用 Spring Boot Configuration Processor 完成自動(dòng)補(bǔ)全

當(dāng)我們?cè)谂渲梦募袑懝俜街С值呐渲玫臅r(shí)候,我們都會(huì)發(fā)現(xiàn)的有自動(dòng)補(bǔ)全配置的一個(gè)功能,那怎么也讓我們自己的配置也實(shí)現(xiàn)這種功能呢?

其實(shí)當(dāng)你用這個(gè)注解的時(shí)候,IDE是會(huì)提示你這一點(diǎn)的,她會(huì)在文件的上方提示你要可以配置自動(dòng)補(bǔ)全的功能:

實(shí)現(xiàn)的方式就是項(xiàng)目導(dǎo)入依賴:

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

然后重新編譯或運(yùn)行項(xiàng)目:

項(xiàng)目會(huì)生產(chǎn)一個(gè)json文件

然后能夠?qū)崿F(xiàn)自動(dòng)提示補(bǔ)全配置項(xiàng)的功能了

到此這篇關(guān)于Java中@ConfigurationProperties實(shí)現(xiàn)自定義配置綁定問(wèn)題分析的文章就介紹到這了,更多相關(guān)@ConfigurationProperties自定義配置綁定內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringCloud 中使用 Ribbon的方法詳解

    SpringCloud 中使用 Ribbon的方法詳解

    本文重點(diǎn)給大家介紹SpringCloud 中使用 Ribbon的方法,本文通過(guò)實(shí)例文字相結(jié)合的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2018-10-10
  • 解決IDEA2021版compiler.automake.allow.when.app.running不存在的問(wèn)題

    解決IDEA2021版compiler.automake.allow.when.app.running不存在的問(wèn)題

    很多文章介紹IntelliJ IDEA開啟熱部署功能都會(huì)寫到在IntelliJ IDEA中的注冊(cè)表中開啟compiler.automake.allow.when.app.running選項(xiàng),此選項(xiàng)在IntelliJ IDEA 2021.2之后的版本遷移到高級(jí)設(shè)置中,下面看下設(shè)置方法
    2021-09-09
  • Java中對(duì)于雙屬性枚舉的使用案例

    Java中對(duì)于雙屬性枚舉的使用案例

    今天小編就為大家分享一篇關(guān)于Java中對(duì)于雙屬性枚舉的使用案例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-12-12
  • Java 遞歸重難點(diǎn)分析詳解與練習(xí)

    Java 遞歸重難點(diǎn)分析詳解與練習(xí)

    一說(shuō)起遞歸,我想每個(gè)人都不陌生。舉個(gè)從小就聽(tīng)過(guò)的例子:從前有座山,山里有座廟,廟里有個(gè)和尚,和尚在講故事,從前有座山,山里有座廟,廟里有個(gè)和尚,和尚在講故事,從前有座山,要理解遞歸,就得先了解什么是遞歸,實(shí)際上這句話就是一個(gè)遞歸
    2021-11-11
  • 深入剖析Java之String字符串

    深入剖析Java之String字符串

    這篇文章主要為大家詳細(xì)介紹了Java之String字符串,重新帶大家認(rèn)識(shí)String字符串,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • spring boot整合mybatis使用c3p0數(shù)據(jù)源連接mysql

    spring boot整合mybatis使用c3p0數(shù)據(jù)源連接mysql

    這篇文章主要為大家詳細(xì)介紹了spring boot整合mybatis使用c3p0數(shù)據(jù)源連接mysql,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 分布式事務(wù)CAP兩階段提交及三階段提交詳解

    分布式事務(wù)CAP兩階段提交及三階段提交詳解

    這篇文章主要為大家介紹了分布式事務(wù)CAP、兩階段提交及三階段提交的內(nèi)容詳解有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-01-01
  • 優(yōu)化Java內(nèi)存管理來(lái)防止“GC”錯(cuò)誤的方法詳解

    優(yōu)化Java內(nèi)存管理來(lái)防止“GC”錯(cuò)誤的方法詳解

    垃圾回收(GC)是 Java 中的一個(gè)重要機(jī)制,它可以管理內(nèi)存并回收不再使用的對(duì)象所占用的資源,在本文中,我們將探討一些技巧,幫助您避免這一錯(cuò)誤,確保您的 Java 應(yīng)用程序順利運(yùn)行,需要的朋友可以參考下
    2023-11-11
  • java中表示一個(gè)文件的File類型詳解

    java中表示一個(gè)文件的File類型詳解

    Java提供File類,讓我們對(duì)文件進(jìn)行操作,下面這篇文章主要給大家介紹了關(guān)于java中表示一個(gè)文件的File類型的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • Java輸入輸出流方式(文件的復(fù)制)

    Java輸入輸出流方式(文件的復(fù)制)

    Java中的輸入輸出流主要用于數(shù)據(jù)的讀取和寫入,在文件復(fù)制中,我們首先創(chuàng)建輸入流和輸出流對(duì)象,然后打開源文件和目標(biāo)文件,接著,通過(guò)循環(huán)讀取源文件中的數(shù)據(jù),并將其寫入目標(biāo)文件中,最后,關(guān)閉輸入輸出流以釋放資源
    2025-02-02

最新評(píng)論

绥化市| 温宿县| 辽宁省| 昂仁县| 左云县| 双辽市| 松江区| 滨州市| 丹巴县| 登封市| 榆中县| 怀柔区| 张家川| 临高县| 九龙县| 湘阴县| 昌乐县| 汤原县| 沙田区| 普安县| 汝州市| 巴彦淖尔市| 克东县| 乐都县| 宜昌市| 通辽市| 正定县| 绥宁县| 大庆市| 山阳县| 漳浦县| 宣武区| 金溪县| 容城县| 襄樊市| 泽库县| 耿马| 兴化市| 南木林县| 福建省| 连州市|