public class Bike{
@Override
public String toString() {
return "Bike{" +
"name='" + name + '\'' +
'}';
}
public void setName(String name) {
this.name = name;
}
@Value("${bike.name}")
private String name;
public String getName() {
return name;
}
}
@Configuration
@PropertySource("classpath:/test.properties")
public class SampleConfig {
@Bean
public Bike bike(){
return new Bike();
}
}
public class SampleTest {
@Test
public void test01(){
AnnotationConfigApplicationContext app = new AnnotationConfigApplicationContext(SampleConfig.class);
System.out.println(app.getBean(Bike.class));
System.out.println(app.getEnvironment().getProperty("bike.name"));
}
}
打印:
由打印结果可以知道,其实@Value("${bike.name}")是从Environment(环境变量)中取到的
@value中支持spEl表达式使用方式:#{}
@value中取环境变量使用方式:${}
@value中取环境变量加默认值:@Value("${bike.name:aaa}") 解释":"号后为默认值