转自: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 类完成注入操作,如下图所示:
在这里插入图片描述

 

posted on 2020-09-21 14:43  Sharpest  阅读(2106)  评论(0编辑  收藏  举报