@Value:给属性赋值
1、基本数值
2、可以写SpEL; #{}
3、可以写${};取出配置文件【properties】中的值(在运行环境变量里面的值)
@Data
@AllArgsConstructor //lombok:全部参数的构造方法
@NoArgsConstructor //lombok:空构造
public class Person {
@Value("张三")
private String name;
@Value("#{20-2}")
private int age;
@Value("${person.nickName}")
private String nickName;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}
配置文件:person.properties
person.nickName=小张三
@PropertySource(value = {"classpath:/person.properties"})
@Configuration
public class MainConfigOfPropertyValues {
@Bean
public Person person(){
return new Person();
}
}
@PropertySource
:读取外部配置文件中的k/v保存到运行的环境变量中;
加载完外部的配置文件以后使用${}取出配置文件的值;
指定多个配置文件可以用@PropertySources
;
测试:
@Test
public void test01(){
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainConfigOfPropertyValues.class);
System.out.println("创建容器完成!");
Person person = (Person) applicationContext.getBean("person");
System.out.println(person);
}
//打印
创建容器完成!
Person(name=张三, age=18, nickName=小张三)