@PropertySource 读不到配置文件的属性值

原来Person类这样写: 只写了@PropertySource注解


@Component
@PropertySource(value = {"classpath:person.properties"})
public class Person {
   
    private String lastName;
    private int age;
    private boolean boss;
    private Date birth;
    private Map<String,Object> maps;
    private List<Object> lists;
    private Dog dog;
...
}

运行后找不到配置文件中的值:
@PropertySource 读不到配置文件的属性值_第1张图片
解决方法:
加上@ConfigurationProperties注解:

@Component
@ConfigurationProperties(prefix = "person")
@PropertySource(value = {"classpath:person.properties"})
public class Person {

运行,获取到配置文件中的值:
@PropertySource 读不到配置文件的属性值_第2张图片
为啥呢??因为 @ConfigurationProperties(prefix = “person”)表示该类的属性值为配置中的属性值,找前缀为person的属性。首先从全局配置文件中找是否有person对应的属性值,如果有那么就输出全局配置中的属性值;如果没有,@PropertySource意思是属性来源,从@PropertySource指定的路径中找到对应的配置文件,进行赋值。

新手菜鸟一个,有错误的地方还请大家多多指正啦!☺☺☺☺

你可能感兴趣的:(spring,boot,问题解决之路)