亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

注解@ConfigurationProperties

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

注解@Value

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

區(qū)別

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

松散語法綁定:

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

SpEl語法表示:

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

JSR303數(shù)據(jù)校驗:

注解@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他們都能獲取
如果說,我們只是說在某個業(yè)務(wù)邏輯中需要獲取一下配置文件中的某項值,就使用@Value
如果說,我們專門編寫了一個javaBean來和配置文件映射,我們就直接使用

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

注入值校驗主要用的是@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日期比較和日期計算方法小結(jié)

    常用的java日期比較和日期計算方法小結(jié)

    這篇文章主要為大家詳細總結(jié)了常用的java日期比較和日期計算方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • Java操作Zookeeper原理及過程詳解

    Java操作Zookeeper原理及過程詳解

    這篇文章主要介紹了Java操作Zookeeper原理及過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下
    2020-05-05
  • spring boot多數(shù)據(jù)源動態(tài)切換代碼實例

    spring boot多數(shù)據(jù)源動態(tài)切換代碼實例

    這篇文章主要介紹了spring boot多數(shù)據(jù)源動態(tài)切換代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下
    2020-01-01
  • springboot自定義日志注解的實現(xiàn)

    springboot自定義日志注解的實現(xiàn)

    本文主要介紹了springboot自定義日志注解的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • java中throws與try...catch的區(qū)別點

    java中throws與try...catch的區(qū)別點

    在本篇文章里小編給大家整理了一篇關(guān)于java中throws與try...catch的區(qū)別點的內(nèi)容,需要的朋友們跟著學(xué)習下。
    2020-02-02
  • Java JDK動態(tài)代理的基本原理詳細介紹

    Java JDK動態(tài)代理的基本原理詳細介紹

    這篇文章主要介紹了Java JDK動態(tài)代理的基本原理詳細介紹的相關(guān)資料,這里對動態(tài)代理進行了詳解并附簡單實例代碼,需要的朋友可以參考下
    2017-01-01
  • IDEA對使用了第三方依賴jar包的非Maven項目打jar包的問題(圖文詳解)

    IDEA對使用了第三方依賴jar包的非Maven項目打jar包的問題(圖文詳解)

    這篇文章主要介紹了IDEA對使用了第三方依賴jar包的非Maven項目打jar包的問題,本文給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • maven如何查看jar的pom引入來源

    maven如何查看jar的pom引入來源

    這篇文章主要介紹了maven查看jar的pom引入來源,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • Springboot之@ConfigurationProperties注解解讀

    Springboot之@ConfigurationProperties注解解讀

    在Spring Boot中,@EnableConfigurationProperties注解的主要作用是激活@ConfigurationProperties注解的配置屬性類,從而讓配置屬性類能被Spring容器管理,這樣的話,我們就可以在屬性類中輕松地使用@ConfigurationProperties來綁定配置文件中的屬性
    2024-10-10
  • Springboot項目對數(shù)據(jù)庫用戶名密碼實現(xiàn)加密過程解析

    Springboot項目對數(shù)據(jù)庫用戶名密碼實現(xiàn)加密過程解析

    這篇文章主要介紹了Springboot項目對數(shù)據(jù)庫用戶名密碼實現(xiàn)加密過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下
    2020-06-06

最新評論