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

Springboot中如何通過yml為實體類注入屬性

 更新時間:2022年05月05日 10:08:50   作者:一個小年輕  
這篇文章主要介紹了Springboot中如何通過yml為實體類注入屬性,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

延伸:以后除了可以為實體類注入屬性,還可以為配置類注入相關的配置信息

1.編寫實體類

@Component
@ConfigurationProperties(prefix = "person")
public class Person {
    private String lastName;
    private Integer age;
    private Boolean boss;
    private Date birth;
    private Map<String,Object> maps;
    private List<Object> lists;
    private Dog dog;
    @Override
    public String toString() {
        return "Person{" +
                "lastName='" + lastName + '\'' +
                ", age=" + age +
                ", boss=" + boss +
                ", birth=" + birth +
                ", maps=" + maps +
                ", lists=" + lists +
                ", 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;
    }
}
  • @Component 表示將當前類的創(chuàng)建工作交給Spring容器管理
@ConfigurationProperties(prefix = “person”) 

用于表示該類需要讀取的配置信息,prefix用于指示讀取哪一個配置信息

Person類依賴了一個Dog類,如下:

public class Dog {
    private String name;
    private Integer age;
    @Override
    public String toString() {
        return "Dog{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
}

2.編寫yml文件

@ConfigurationProperties(prefix = “person”)

Person類的這個注解就會去找yml中對應的配置信息

person:
? lastName: zhangsan
? age: 18
? boss: false
? birth: 2017/12/12
? maps: {k1: v1,k2: v2}
? lists:
? ? - lisi
? ? - zhaoliu
? ? - wangwu
? dog:
? ? name: 小狗
? ? age: 2

3.測試

@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringbootQuickStartApplicationTests {
? ? @Autowired
? ? Person person;
? ? @Test
? ? public void demo1() {
? ? ? ? System.out.println(person);
? ? }
}

4.結果 

注意:有可能中文在這個地方打印會出現亂碼,原因是yml的編碼和java文件的編碼不一樣導致,我們需要將其配成一致的編碼,如都設置成utf-8。

5.可以不用@ConfigurationProperties(prefix = “person”)注解方式

使用@Value的方式注入屬性值

@Value注解等價于:

以三個屬性字段為例

我們既可以從配置文件取值,也可以通過字面量直接賦值,當屬性值少的時候這種方式特別方便。

    @Value("${person.lastName}")
    private String lastName;
    @Value("${person.age}")
    private Integer age;
    @Value("true")
    private Boolean boss;

效果如下,由于只注入了三個屬性,其余屬性則為空

6.@ConfigurationProperties(prefix = “person”)

默認是從主配置文件中讀取相關信息,我們可以使用

@PropertySource(value = {“配置文件的路徑”})

來指定需要讀取的配置文件

6.1寫一個dog.properties配置Dog類的相關配置信息

dog.name=puppy
dog.age=24

6.2為Dog類注入屬性

@PropertySource(value = {"classpath:dog.properties"})
@Component
@ConfigurationProperties(prefix = "dog")
public class Dog {
    private String name;
    private Integer age;

6.3效果

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。 

相關文章

  • Java實現PIFrame窗體效果的示例代碼

    Java實現PIFrame窗體效果的示例代碼

    在很多現代應用中,常常需要使用個性化的窗體外觀,擺脫傳統(tǒng)窗口邊框的限制,無邊框、透明、圓角和陰影效果使得窗體顯得更輕巧、更具視覺吸引力,同時允許用戶自由拖拽和??看绑w,所以本文給大家介紹了如何使用Java實現PIFrame窗體效果,需要的朋友可以參考下
    2025-03-03
  • 簡介Java的Hibernate框架中的Session和持久化類

    簡介Java的Hibernate框架中的Session和持久化類

    這篇文章主要介紹了Java的Hibernate框架中的Session和持久化類,Hibernate是Java的SSH三大web開發(fā)框架之一,需要的朋友可以參考下
    2015-12-12
  • IDEA整合jeesite4.x及安裝教程

    IDEA整合jeesite4.x及安裝教程

    本文給大家介紹IDEA整合jeesite4.x及安裝教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-07-07
  • java二叉樹的數據插入算法介紹

    java二叉樹的數據插入算法介紹

    大家好,本篇文章主要講的是java二叉樹的數據插入算法介紹,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • java加密算法分享(rsa解密、對稱加密、md5加密)

    java加密算法分享(rsa解密、對稱加密、md5加密)

    這篇文章主要介紹了java加密算法,包括rsa解密、對稱加密、md5加密等,需要的朋友可以參考下
    2014-05-05
  • Java動態(tài)代理模式的深入揭秘

    Java動態(tài)代理模式的深入揭秘

    這篇文章主要給大家介紹了關于Java動態(tài)代理模式的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Java具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-08-08
  • Java中DecimalFormat用法詳解

    Java中DecimalFormat用法詳解

    這篇文章主要為大家詳細介紹了Java中DecimalFormat的用法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • spring boot項目application.properties文件存放及使用介紹

    spring boot項目application.properties文件存放及使用介紹

    這篇文章主要介紹了spring boot項目application.properties文件存放及使用介紹,我們的application.properties文件中會有很多敏感信息,大家在使用過程中要多加小心
    2021-06-06
  • SpringBoot實現EMQ設備的上下線告警

    SpringBoot實現EMQ設備的上下線告警

    EMQX?的上下線系統(tǒng)消息通知功能在客戶端連接成功或者客戶端斷開連接,需要實現設備的上下線狀態(tài)監(jiān)控,所以本文給大家介紹了如何通過SpringBoot實現EMQ設備的上下線告警,文中有詳細的代碼示例,需要的朋友可以參考下
    2023-10-10
  • Java如何獲取當前時間的小時/分鐘(實現方法)

    Java如何獲取當前時間的小時/分鐘(實現方法)

    文章介紹了Java獲取當前時間的小時、分鐘等的方法,包括兩種常見方法,并鼓勵讀者繼續(xù)瀏覽相關文章,感興趣的朋友一起看看吧
    2025-02-02

最新評論

百色市| 芜湖市| 尚志市| 卢湾区| 汾阳市| 铅山县| 合肥市| 金堂县| 丹东市| 麦盖提县| 芦溪县| 昌平区| 家居| 金华市| 敦化市| 阳高县| 东阳市| 比如县| 鄂托克前旗| 鄂温| 琼结县| 旬邑县| 图木舒克市| 徐汇区| 安塞县| 穆棱市| 湖南省| 浙江省| 河南省| 汪清县| 武威市| 聊城市| 游戏| 来宾市| 克东县| 汽车| 葵青区| 徐水县| 四川省| 贵南县| 宣汉县|