天天看點

spring源碼分析(三)——注解為屬性指派

利用spring注解,可以為實體類的屬性指派,作用就類似于在配置檔案裡指派一樣。

值得類型可以是内容,也可以進行計算,同時也可以引入配置檔案的值。

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 + "]";
	}

}

           

其中20-2就進行了計算,最後的值是18。

nickName則是引入了配置檔案的值。如需配置檔案,則需要在配置類上指定檔案的路徑位置

//使用@PropertySource讀取外部配置檔案中的k/v儲存到運作的環境變量中;加載完外部的配置檔案以後使用${}取出配置檔案的值
@PropertySource(value={"classpath:/person.properties"})
@Configuration
public class MainConfigOfPropertyValues {
	@Bean
	public Person person(){
		return new Person();
	}

}