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

SpringBoot中注解@ConfigurationProperties與@Value的區(qū)別與使用詳解

 更新時(shí)間:2021年09月16日 10:22:53   作者:陽光下的米雪  
本文主要介紹了SpringBoot中注解@ConfigurationProperties與@Value的區(qū)別與使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

注解@ConfigurationProperties

該注解的作用是將配置文件中配置的每一個(gè)屬性的值,映射到這個(gè)組件中。@ConfigurationProperties :告訴springboot將本類中的所有屬性和配置文件中相關(guān)的配置進(jìn)行綁定 prefix = “person”:配置文件中哪個(gè)下面的所有屬性進(jìn)行一一映射。簡言之,也就是只有這個(gè)組件是容器中的組件;才能在容器中提供的@ConfigurationProperties功能。

注解@Value

該注解就是將配置文件中的某項(xiàng)值讀出來,@Value("$(key)"),其中key的值從環(huán)境變量、配置文件中獲取值

區(qū)別

該表格展示了這兩個(gè)注解的區(qū)別,其中,松散語法綁定的定義如下:

松散語法綁定:

  • - person.firstName : 使用標(biāo)準(zhǔn)方法
  • - person.first-name : 大寫用-
  • - person.first_name : 大寫用_
  • - PERSON_FIRST_NAME : 推薦系統(tǒng)屬性使用這種寫法

SpEl語法表示:

其中,@Value可以直接計(jì)算表達(dá)式的值,如:@Value(#{11*2})

JSR303數(shù)據(jù)校驗(yàn):

注解@ConfigurationProperties(prefix = "person")可以搭配@Validated使用

復(fù)雜類型封裝:

支持讀入類中的所有屬性,比如,想讀如person中的所有屬性,使用@ConfigurationProperties(prefix = "person")

# 配置person的值
person.last-name=zhangsan
person.age=18
person.birth=2017/12/12
person.boss=false
person.maps.k1=v1
person.maps.k2=14
person.lists=a,b,v
person.dog.name=二哈
person.dog.age=2

使用方法區(qū)別:

配置文件無論是yml還是properties他們都能獲取
如果說,我們只是說在某個(gè)業(yè)務(wù)邏輯中需要獲取一下配置文件中的某項(xiàng)值,就使用@Value
如果說,我們專門編寫了一個(gè)javaBean來和配置文件映射,我們就直接使用

配置文件注入值數(shù)據(jù)校驗(yàn)

注入值校驗(yàn)主要用的是@Validated注解,像代碼中private String lastName;可以使用@Email,雖然使用姓名使用郵件格式可能不太合適,此處只是為了舉例子,意思是lastName必須是郵箱格式

@Component
@ConfigurationProperties(prefix = "person")
@Validated
public class Person {
    /**
     * <bean class="Person">
     *     <property name="lastNme" value="字面量/${key}從環(huán)境變量、配置文件中獲取值/#{SpEl}">
     *
     *     </property>>
     * </bean>
     */
    //lastName必須是郵箱格式
    @Email
//    @Value("${person.last-name}")
    private String lastName;
//    @Value("#{11*2}")
    private Integer age;
//    @Value("true")
    private Boolean boss;
    private Date birth;

//    @Value("${person.maps}")
    private Map<String,Object> maps;
    private List<Object> lists;
    private Dog dog;

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Boolean getBoss() {
        return boss;
    }

    public void setBoss(Boolean boss) {
        this.boss = boss;
    }

    public Date getBirth() {
        return birth;
    }

    public void setBirth(Date birth) {
        this.birth = birth;
    }

    public Map<String, Object> getMaps() {
        return maps;
    }

    public void setMaps(Map<String, Object> maps) {
        this.maps = maps;
    }

    public List<Object> getLists() {
        return lists;
    }

    public void setLists(List<Object> lists) {
        this.lists = lists;
    }

    public Dog getDog() {
        return dog;
    }

    public void setDog(Dog dog) {
        this.dog = dog;
    }

    @Override
    public String toString() {
        return "Person{" +
                "lastName='" + lastName + '\'' +
                ", age=" + age +
                ", boss=" + boss +
                ", birth=" + birth +
                ", maps=" + maps +
                ", lists=" + lists +
                ", dog=" + dog +
                '}';
    }
}

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

相關(guān)文章

  • Java中的包、抽象類、接口詳解(最新整理)

    Java中的包、抽象類、接口詳解(最新整理)

    文章介紹了Java中的包、抽象類、接口以及實(shí)現(xiàn)多個(gè)接口的概念,包用于組織類,避免命名沖突,抽象類用于定義不能被實(shí)例化的類,可以包含抽象方法,接口則定義了一組抽象方法,可以被類實(shí)現(xiàn),實(shí)現(xiàn)多個(gè)接口可以實(shí)現(xiàn)類似多繼承的效果,感興趣的朋友一起看看吧
    2025-02-02
  • 解決使用RestTemplate時(shí)報(bào)錯RestClientException的問題

    解決使用RestTemplate時(shí)報(bào)錯RestClientException的問題

    這篇文章主要介紹了解決使用RestTemplate時(shí)報(bào)錯RestClientException的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Java PDF 添加數(shù)字簽名的實(shí)現(xiàn)方法

    Java PDF 添加數(shù)字簽名的實(shí)現(xiàn)方法

    這篇文章主要介紹了Java PDF 添加數(shù)字簽名的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Mybatis-Plus通用枚舉的使用詳解

    Mybatis-Plus通用枚舉的使用詳解

    這篇文章主要介紹了Mybatis-Plus通用枚舉的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Java網(wǎng)絡(luò)通信中URL與HTTP編程技術(shù)詳解

    Java網(wǎng)絡(luò)通信中URL與HTTP編程技術(shù)詳解

    要想實(shí)現(xiàn)網(wǎng)絡(luò)編程,除了可以使用Socket之外,我們還可以利用URL編程或HTTP編程技術(shù),所以今天這篇文章,就給大家介紹一下URL編程和HTTP編程技術(shù),看看這兩種技術(shù)有什么特點(diǎn),文中有詳細(xì)的代碼講解,需要的朋友可以參考下
    2023-11-11
  • Java實(shí)現(xiàn)矩陣順時(shí)針旋轉(zhuǎn)90度的示例

    Java實(shí)現(xiàn)矩陣順時(shí)針旋轉(zhuǎn)90度的示例

    今天小編就為大家分享一篇Java實(shí)現(xiàn)矩陣順時(shí)針旋轉(zhuǎn)90度的示例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Java Web使用簡單的批處理操作(記事本+Tomcat)

    Java Web使用簡單的批處理操作(記事本+Tomcat)

    這篇文章主要介紹了Java Web使用簡單的批處理操作 ,需要的朋友可以參考下
    2014-10-10
  • mybatis教程之延遲加載詳解

    mybatis教程之延遲加載詳解

    本篇文章主要介紹了mybatis教程之延遲加載詳解。詳細(xì)介紹了延遲加載的意義和用法實(shí)現(xiàn),有興趣的可以了解一下
    2017-05-05
  • java短信驗(yàn)證碼獲取次數(shù)限制實(shí)例

    java短信驗(yàn)證碼獲取次數(shù)限制實(shí)例

    這篇文章主要介紹了java短信驗(yàn)證碼獲取次數(shù)限制實(shí)例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-01-01
  • 使用spring框架中的組件發(fā)送郵件功能說明

    使用spring框架中的組件發(fā)送郵件功能說明

    Spring使用的是基本的JavaBean來完成以前只可能由EJB完成的事情。這篇文章主要介紹了使用spring框架中的組件發(fā)送郵件,需要的朋友可以參考下
    2017-11-11

最新評論

乡城县| 得荣县| 张掖市| 安龙县| 莱阳市| 东乌| 宣城市| 壤塘县| 红桥区| 石首市| 榆林市| 绥芬河市| 桐梓县| 尖扎县| 宁津县| 绥芬河市| 西乌珠穆沁旗| 玛多县| 徐闻县| 佛坪县| 上饶县| 渭南市| 盱眙县| 仁寿县| 永定县| 六枝特区| 钟祥市| 水富县| 肃南| 威海市| 庄浪县| 石嘴山市| 安阳市| 吐鲁番市| 青岛市| 吴川市| 宁强县| 那曲县| 峨边| 嵩明县| 内乡县|