@PropertySource 注解的使用


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

我們了解完 @ConfigurationProperties 注解的使用,知道了它可以將 application.yml 或 application.properties 主配置文件中的屬性值與 Java Bean 對應屬性進行注入。

此時就引出另一個問題,如果所有屬性值都配置在 主配置文件 中,主配置文件就會越來越龐大,這顯然是不可以的。此時我們可以使用 Spring 為我們提供的 @PropertySource 注解,去加載指定的配置文件,然后結合 @ConfigurationProperties 注解,便能夠實現指定配置文件與 Java Bean 的注入操作。

接下來,我們就來用一個實例來了解一下。如何使用 @ PropertySource 注解來加載指定配置文件,實現配置文件與Java Bean 類的注入。

@PropertySource注解的使用 注意:該注解僅適用於properties 類型配置文件

我們新建一個 person.properties 配置文件,用來存放 Person 類的配置信息。接下來使用 @ PropertySource 注解,來實現通過讀取該配置,實現配置文件與 Java Bean 類的注入操作。

//person.properties
person.name=扛麻袋的少年
person.age=27
person.manager=true
person.birthday=2020/03/27
person.map.k1=v1
person.map.k2=v2
person.list=basketball,tennis,swim
person.address.province=山西省
person.address.distinct=晉中市
person.address.county=祁縣
1
2
3
4
5
6
7
8
9
10
11
javaBean類

添加 @PropertySource(value = {“classpath:person.properties”})注解,通過 value 屬性讓它去加載指定路徑配置文件。代碼如下:

@Component
@ConfigurationProperties(prefix = "person")
@PropertySource(value = {"classpath:person.properties"})//讀取指定路徑配置文件
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
21
22
23
24
測試:
使用 SpringBoot 為我們提供的測試環境,來進行以上代碼的測試。測試結果顯示,它可以實現 person.properties 文件中的配置信息與自定義的 Person 類完成注入操作,如下圖所示:
在這里插入圖片描述

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM