配置文件person.properties
person.nickName=张飞
实体Person
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
@Data
public class Person {
//使用@Value赋值;
//1、基本数值
//2、可以写SpEL; #{}
//3、可以写${};取出配置文件【properties】中的值(在运行环境变量里面的值)
@Value("刘备")
private String name;
@Value("#{50-20}")
private Integer age;
@Value("${person.nickName}")
private String nickName;
}
Spring配置文件Config.java
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
//使用@PropertySource读取外部配置文件中的k/v保存到运行的环境变量中;加载完外部的配置文件以后使用${}取出配置文件的值
@PropertySource(value={"classpath:/person.properties"})
@Configuration
public class Config {
@Bean
public Person person(){
return new Person();
}
}
单元测试
import org.junit.Test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.core.env.ConfigurableEnvironment;
public class IOCTest {
@Test
public void test01(){
//1、创建ioc容器
AnnotationConfigApplicationContext applicationContext =
new AnnotationConfigApplicationContext(Config.class);
printBeans(applicationContext);
System.out.println("=============");
Person person = (Person) applicationContext.getBean("person");
System.out.println(person);
ConfigurableEnvironment environment = applicationContext.getEnvironment();
String property = environment.getProperty("person.nickName");
System.out.println(property);
//关闭容器
applicationContext.close();
}
private void printBeans(AnnotationConfigApplicationContext applicationContext){
String[] definitionNames = applicationContext.getBeanDefinitionNames();
for (String name : definitionNames) {
System.out.println(name);
}
}
}