@ConfigurationProperties註解將配置檔案值注入到Java Bean
阿新 • • 發佈:2020-09-21
轉自:https://blog.csdn.net/lzb348110175/article/details/105139372
我們已經知道 Spring Boot 中使用的是.properties
和.yml
兩個格式的配置檔案。下面就來介紹:Spring Boot 配置檔案中的值,如何注入到我們自定義的 Java Bean 中。
(或者:Java Bean 如何獲取配置檔案中的值來注入)
本文分別以yml
和properties
兩個格式的配置檔案,來介紹如何將配置內容注入到 Java Bean類呢?如下分別為 Java Bean類,繼續往下看↓↓↓↓↓
JavaBean類
1.Person類
public class Person {
private String name;
private int age;
private boolean isManager;
private Date birthday;
private Map<String,Object> map;
private List<String> list;
private Address address;
/**
* 此處省略get/set/toString() 方法
*/
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
2.Address類
public class Address {
private String province;
private String distinct;
private String county;
/**
* 此處省略get/set/toString() 方法
*/
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
1.yml 配置檔案值注入
application.yml配置檔案:
person:
name: 扛麻袋的少年
age: 27
isManager: true
birthday: 2020-03-27
map:
k1: v1
k2: v2
list:
- basketball
- tennis
- swim
address:
province: 山西省
distinct: 晉中市
county: 祁縣
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
步驟:
- 在Java Bean 類上,新增
@Component
註解。 - 同時,再新增
@ConfigurationProperties(prefix = “person”)
註解; - 在 pom.xml 中,匯入配置檔案處理器依賴。以後編寫
yml
、properties
配置檔案,這些配置項就會有相對應的提示了。
<!--匯入配置檔案處理器,配置檔案進行繫結就會有提示-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
- 1
- 2
- 3
- 4
- 5
- 6
解析:
- 新增
@Component
註解。切記:只有這個元件是容器中的元件,才能使用容器提供的@ConfigurationProperties
註解功能; @ConfigurationProperties 註解
:它會告訴 Spring Boot 將本類中的所有屬性和配置檔案中相關的配置進行繫結;prefix = "person"
:告訴 Spring Boot 應該讀取配置檔案中哪個下面的所有屬性進行一一對映;- 新增 Maven 依賴。
具體配置如圖:
測試:
我們在SpringBoot為我們提供的測試類中進行測試,檢視配置檔案內容是否已經成功注入到我們自定義的 Person 類中。如下圖所示,我們可以看到它已經幫我們注入到了 Person 類中。
2.properties 配置檔案值注入
你會看到,我們在匯入配置檔案處理器
後,配置檔案進行繫結就會有相對應的提示了。接下來我們編寫 properties 型別配置檔案,來完成 peoperties 檔案值得注入。
如下是一些properties 型別
和yml 型別
編寫上的一些區別。properties 配置檔案值的注入部分,和 yml 配置檔案值得注入步驟一模一樣,該加的註解、maven依賴都得一個不落的加上。
測試:
亂碼解決:
Setting------Editor------File Encodings 中,進行解決。如下圖所示↓↓↓↓↓
優先順序測試:yml 和 properties 兩種同時寫,沒人會這麼幹的,哈哈