提问者:小点点

什么配置可以评估@Value注释?


我打算对Spring进行一个非常简单的基于编程/注释的配置,以完成一些命令行工作,并且我希望能够从System财产中注入一些bean值的值。

我像这样使用@Value:

@Value("${MigrateDb.task:default}")
private String task;

它有点奏效,但它没有评估值定义,我只是在实际字段中获得“${MigrateDb.task:default}”,而不是Spring评估它并给我Migrate.db.task系统属性(或默认值)的值。

我需要向Configuration类添加什么才能启用此行为?


共2个答案

匿名用户

试着这样使用:

@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