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

SpringBoot?@Value與@ConfigurationProperties二者有哪些區(qū)別

 更新時(shí)間:2022年10月26日 14:20:05   作者:沫洺  
這篇文章主要介紹了SpringBoot?@Value與@ConfigurationProperties二者的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧

@Value 和 @ConfigurationProperties 注解都能讀取配置文件中的屬性值并綁定到 JavaBean 中,但兩者存在以下不同。

區(qū)別@ConfigurationProperties@Value
使用位置不同標(biāo)注在 JavaBean 的類名上標(biāo)注在 JavaBean 的屬性上
功能不同用于批量綁定配置文件中的配置單值綁定
松散綁定(松散語法)支持部分支持
Spel不支持支持
復(fù)雜類型封裝支持支持,比較繁瑣
JSR303數(shù)據(jù)校驗(yàn)支持不支持
應(yīng)用場景不同通過JavaBean獲取整個(gè)配置文件單個(gè)屬性值

說明

使用位置不同

  • @ConfigurationProperties:標(biāo)注在 JavaBean 的類名上;
  • @Value:標(biāo)注在 JavaBean 的屬性上。
@Component
@Data
@ConfigurationProperties(prefix = "person")
@PropertySource("classpath:person.properties")
public class Person {
    private String firstName;
}
@Component
@Data
@PropertySource("classpath:user.properties")
public class User {
    @Value("${user.username}")
    private String username;
}

功能不同

  • @ConfigurationProperties:用于批量綁定配置文件中的配置;
  • @Value:只能一個(gè)一個(gè)的指定需要綁定的配置。

松散綁定支持不同

@ConfigurationProperties:支持松散綁定(松散語法),例如實(shí)體類 Person 中有一個(gè)屬性為 firstName,那么配置文件中的屬性名支持以下寫法:

  • person.firstName
  • person.first-name
  • person.first_name
  • PERSON.FIRST_NAME

@Vaule:不支持松散綁定。

SpEL 支持不同

SpEL表達(dá)式:#{obj}

  • @ConfigurationProperties:不支持 SpEL 表達(dá)式;
  • @Value:支持 SpEL 表達(dá)式。
@Value("#{${girl.hobbyMap}}")
private Map<String,Object> hobbyMap;

復(fù)雜類型封裝

  • @ConfigurationProperties:支持所有類型數(shù)據(jù)的封裝,例如 Map、List、Set、以及對(duì)象等;
  • @Value:支持基本數(shù)據(jù)類型的封裝,例如字符串、布爾值、整數(shù)等類型, 對(duì)集合Map list set配置有要求

屬性校驗(yàn)

  • @Value不支持屬性校驗(yàn)
  • @ConfigurationProperties 支持屬性校驗(yàn)
@Configuration
@ConfigurationProperties(prefix = "boy")
@Data
@PropertySource("classpath:boy.properties")
@Validated
public class Boy {
    @NotNull//不為空
    private String name;
    @Min(20)//不小于20
    private int age;
}

應(yīng)用場景不同

@Value 和 @ConfigurationProperties 兩個(gè)注解之間,并沒有明顯的優(yōu)劣之分,它們只是適合的應(yīng)用場景不同而已。

  • 若只是獲取配置文件中的某項(xiàng)值,則推薦使用 @Value 注解;
  • 若專門編寫了一個(gè) JavaBean 來和配置文件進(jìn)行映射,則建議使用 @ConfigurationProperties 注解。

在選用時(shí),根據(jù)實(shí)際應(yīng)用場景選擇合適的注解能達(dá)到事半功倍的效果。

到此這篇關(guān)于SpringBoot @Value與@ConfigurationProperties二者有哪些區(qū)別的文章就介紹到這了,更多相關(guān)SpringBoot @Value與@ConfigurationProperties內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 簡單了解java集合框架LinkedList使用方法

    簡單了解java集合框架LinkedList使用方法

    這篇文章主要介紹了簡單了解java集合框架LinkedList使用方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • java定時(shí)任務(wù)的實(shí)現(xiàn)方式

    java定時(shí)任務(wù)的實(shí)現(xiàn)方式

    這篇文章主要介紹了java定時(shí)任務(wù)的實(shí)現(xiàn)方式,在應(yīng)用里經(jīng)常都有用到在后臺(tái)跑定時(shí)任務(wù)的需求,如何進(jìn)行java定時(shí)任務(wù),本文為大家進(jìn)行講解,感興趣的小伙伴們可以參考一下
    2016-02-02
  • Java實(shí)現(xiàn)的質(zhì)因數(shù)分解操作示例【基于遞歸算法】

    Java實(shí)現(xiàn)的質(zhì)因數(shù)分解操作示例【基于遞歸算法】

    這篇文章主要介紹了Java實(shí)現(xiàn)的質(zhì)因數(shù)分解操作,結(jié)合實(shí)例形式較為詳細(xì)的分析了Java基于遞歸算法實(shí)現(xiàn)針對(duì)整數(shù)的質(zhì)因數(shù)分解相關(guān)操作技巧,需要的朋友可以參考下
    2018-03-03
  • Java設(shè)置String字符串編碼方法詳解

    Java設(shè)置String字符串編碼方法詳解

    因?yàn)镾tring字符串很常用,所以我們在使用它的過程中,可能會(huì)面臨各種問題,比如”中文亂碼“問題等,那么為什么中文會(huì)亂碼?本文將給大家介紹一下Java如何設(shè)置String字符串編碼,來避免和解決這一常見問題,需要的朋友可以參考下
    2023-05-05
  • SpringBoot實(shí)現(xiàn)配置文件的替換

    SpringBoot實(shí)現(xiàn)配置文件的替換

    這篇文章主要介紹了SpringBoot實(shí)現(xiàn)配置文件的替換,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java安全-ClassLoader

    Java安全-ClassLoader

    這篇文章主要介紹了Java安全ClassLoader,Java類初始化的時(shí)候會(huì)調(diào)用java.lang.ClassLoader加載字節(jié)碼,ClassLoader就是用來動(dòng)態(tài)加載class文件到內(nèi)存當(dāng)中用的,下面詳細(xì)內(nèi)容,需要的小伙伴可以參考一下
    2022-01-01
  • springboot開啟mybatis二級(jí)緩存的步驟詳解

    springboot開啟mybatis二級(jí)緩存的步驟詳解

    這篇文章給大家介紹了springboot開啟mybatis二級(jí)緩存的詳細(xì)步驟,文中通過代碼示例給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-02-02
  • Java動(dòng)態(tài)規(guī)劃之硬幣找零問題實(shí)現(xiàn)代碼

    Java動(dòng)態(tài)規(guī)劃之硬幣找零問題實(shí)現(xiàn)代碼

    這篇文章主要介紹了Java動(dòng)態(tài)規(guī)劃之硬幣找零問題實(shí)現(xiàn)代碼,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • springboot整合easy-es實(shí)現(xiàn)數(shù)據(jù)的增刪改查的示例代碼

    springboot整合easy-es實(shí)現(xiàn)數(shù)據(jù)的增刪改查的示例代碼

    Easy-Es是一款基于ElasticSearch官方提供的RestHighLevelClient打造的低碼開發(fā)框架,本文主要介紹了springboot整合easy-es實(shí)現(xiàn)數(shù)據(jù)的增刪改查的示例代碼,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • Java實(shí)現(xiàn)批量導(dǎo)入excel表格數(shù)據(jù)到數(shù)據(jù)庫中的方法

    Java實(shí)現(xiàn)批量導(dǎo)入excel表格數(shù)據(jù)到數(shù)據(jù)庫中的方法

    這篇文章主要介紹了Java實(shí)現(xiàn)批量導(dǎo)入excel表格數(shù)據(jù)到數(shù)據(jù)庫中的方法,結(jié)合實(shí)例形式詳細(xì)分析了java導(dǎo)入Excel數(shù)據(jù)到數(shù)據(jù)庫的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2017-10-10

最新評(píng)論

东兰县| 任丘市| 时尚| 唐河县| 新河县| 玉山县| 印江| 土默特左旗| 奎屯市| 宣汉县| 连云港市| 德江县| 靖州| 乐清市| 茶陵县| 广汉市| 临洮县| 丹凤县| 阿图什市| 阳朔县| 泸西县| 江源县| 景德镇市| 郴州市| 澄江县| 沁阳市| 罗江县| 新化县| 梅州市| 武隆县| 珠海市| 齐河县| 龙州县| 嘉禾县| 嵊州市| 吴桥县| 遵义县| 城口县| 鹿泉市| 北川| 大姚县|