Spring中两种运行时求值的方式
前面在xml中创建bean的时候,使用<construction-arg>注入属性的值的时候,采用硬编码,这种方式有时不是很合适,
Spring提供了下面方式实现,运行时注入值
1. 属性占位符(Property placeholder)
2. Spring表达式语言(SpEL)
属性占位符
* JavaConfig中使用注解@PropertySource注解和Environment
@Configuration
@PropertySource("classpath:com/bing/config/app.properties")
public class ExpressiveConfig {
@Autowired
Environment env;
@Bean
public HelloWorld gethelloWorld(){
return new HelloWorld(env.getProperty("message"));
}
}
app.properties文件中
message = hello world!
@PropertySource引用了类路径中一个名为app.properties的文件,会将属性文件加载到Spring的Environment中,在使用Environment的方法获取属性值。
Environment的getProperty()方法: