Spring的屬性賦值(四)

給實體類添加@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 值爲小張三.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章