我打算对Spring进行一个非常简单的基于编程/注释的配置,以完成一些命令行工作,并且我希望能够从System财产中注入一些bean值的值。
我像这样使用@Value:
@Value("${MigrateDb.task:default}")
private String task;
它有点奏效,但它没有评估值定义,我只是在实际字段中获得“${MigrateDb.task:default}”,而不是Spring评估它并给我Migrate.db.task系统属性(或默认值)的值。
我需要向Configuration类添加什么才能启用此行为?
试着这样使用:
@Value("${MigrateDb.task:default}")
private String task;
XML 配置:
<context:property-placeholder
location="your.filelocation.properties" />`
Java Config :
@Bean
public static PropertyPlaceholderConfigurer propertyPlaceholderConfigurer() {
PropertyPlaceholderConfigurer propertyPlaceholderConfigurer = new PropertyPlaceholderConfigurer();
propertyPlaceholderConfigurer.setLocation(new ClassPathResource("file.properties"));
return propertyPlaceholderConfigurer;
}
根据ShadowRay的回答,启用请求行为的最低代码是:
@Bean
public static PropertyPlaceholderConfigurer propertyPlaceholderConfigurer(){
return new PropertyPlaceholderConfigurer();
}
方法应该是静态的: https://stackoverflow.com/a/14943106/924597