給實體類添加@value()註解賦值,
- 基本數值 (直接賦值)
- 可以寫SpEL; #{} (運算用)
- 可以寫${};取出配置文件【properties】中的值(在運行環境變量裏面的值)
public class Person {
//使用@Value賦值;
//1、基本數值
//2、可以寫SpEL; #{}
//3、可以寫${};取出配置文件【properties】中的值(在運行環境變量裏面的值)
@Value("張三")
private String name;
@Value("#{20-2}")
private Integer age;
//@Value("${person.nickName}")
//private String nickName;
public String getNickName() {
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Person(String name, Integer age) {
super();
this.name = name;
this.age = age;
}
public Person() {
super();
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + ", nickName=" + nickName + "]";
}
}
配置類:
@Configuration
public class MainConfigOfPropertyValues {
@Bean
public Person person(){
return new Person();
}
}
啓動測試類測試下,打印結果如下:(說明值被注入到實體類中)
下面是用配置文件的方式注入:
配置persion.properties文件,放在resources目錄下:內容如下
person.nickName=小張三
配置類加上@PropertySource註解
@PropertySource(value={"classpath:/person.properties"})
@Configuration
public class MainConfigOfPropertyValues {
@Bean
public Person person(){
return new Person();
}
}
創建person實體類,使用@Value("${person.nickName}")注入屬性值.
public class Person {
//使用@Value賦值;
//1、基本數值
//2、可以寫SpEL; #{}
//3、可以寫${};取出配置文件【properties】中的值(在運行環境變量裏面的值)
@Value("張三")
private String name;
@Value("#{20-2}")
private Integer age;
@Value("${person.nickName}")
private String nickName;
public String getNickName() {
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Person(String name, Integer age) {
super();
this.name = name;
this.age = age;
}
public Person() {
super();
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + ", nickName=" + nickName + "]";
}
}
打印結果如下:(nickname屬性被成功注入進來)
同樣的獲取person.properties值也可以以其他方式獲取.獲取方式如下:
AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainConfigOfPropertyValues.class);
ConfigurableEnvironment environment = applicationContext.getEnvironment();
String property = environment.getProperty("person.nickName");
property 值爲小張三.