1. 程式人生 > 實用技巧 >@ConfigurationProperties註解將配置檔案值注入到Java Bean

@ConfigurationProperties註解將配置檔案值注入到Java Bean

轉自:https://blog.csdn.net/lzb348110175/article/details/105139372


我們已經知道 Spring Boot 中使用的是.properties.yml兩個格式的配置檔案。下面就來介紹:Spring Boot 配置檔案中的值,如何注入到我們自定義的 Java Bean 中。(或者:Java Bean 如何獲取配置檔案中的值來注入)

本文分別以ymlproperties兩個格式的配置檔案,來介紹如何將配置內容注入到 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

步驟:

  1. 在Java Bean 類上,新增@Component註解。
  2. 同時,再新增@ConfigurationProperties(prefix = “person”)註解;
  3. 在 pom.xml 中,匯入配置檔案處理器依賴。以後編寫ymlproperties配置檔案,這些配置項就會有相對應的提示了。
<!--匯入配置檔案處理器,配置檔案進行繫結就會有提示-->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-configuration-processor</artifactId>
	<optional>true</optional>
</dependency>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

解析:

  1. 新增@Component註解。切記:只有這個元件是容器中的元件,才能使用容器提供的@ConfigurationProperties註解功能;
  2. @ConfigurationProperties 註解:它會告訴 Spring Boot 將本類中的所有屬性和配置檔案中相關的配置進行繫結;prefix = "person":告訴 Spring Boot 應該讀取配置檔案中哪個下面的所有屬性進行一一對映;
  3. 新增 Maven 依賴。

具體配置如圖:

測試:
我們在SpringBoot為我們提供的測試類中進行測試,檢視配置檔案內容是否已經成功注入到我們自定義的 Person 類中。如下圖所示,我們可以看到它已經幫我們注入到了 Person 類中。


2.properties 配置檔案值注入

你會看到,我們在匯入配置檔案處理器後,配置檔案進行繫結就會有相對應的提示了。接下來我們編寫 properties 型別配置檔案,來完成 peoperties 檔案值得注入。

如下是一些properties 型別yml 型別編寫上的一些區別。properties 配置檔案值的注入部分,和 yml 配置檔案值得注入步驟一模一樣,該加的註解、maven依賴都得一個不落的加上。

測試:

亂碼解決:

Setting------Editor------File Encodings 中,進行解決。如下圖所示↓↓↓↓↓

優先順序測試:yml 和 properties 兩種同時寫,沒人會這麼幹的,哈哈