原来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;
...
}
运行后找不到配置文件中的值:
解决方法:
加上@ConfigurationProperties注解:
@Component
@ConfigurationProperties(prefix = "person")
@PropertySource(value = {"classpath:person.properties"})
public class Person {
运行,获取到配置文件中的值:
为啥呢??因为 @ConfigurationProperties(prefix = “person”)表示该类的属性值为配置中的属性值,找前缀为person的属性。首先从全局配置文件中找是否有person对应的属性值,如果有那么就输出全局配置中的属性值;如果没有,@PropertySource意思是属性来源,从@PropertySource指定的路径中找到对应的配置文件,进行赋值。
新手菜鸟一个,有错误的地方还请大家多多指正啦!☺☺☺☺