@Value未注入

时间:2014-07-28 10:57:45

标签: spring properties code-injection

我正在尝试将属性文件中的值注入spring配置类,如下所示:

@Configuration
@EnableWebMvc
public class ImagesContext {
   @Autowired
   @Value("${some.property.com}")
   private String property;

   @Bean
   public MyClass getMyClass() {
      return new MyClass(property);
   }
}

但该属性未正确注入。相反,当我调试时,我看到property字符串包含${some.property.com}而不是字符串值本身。

1 个答案:

答案 0 :(得分:13)

@Value注释由AutowiredAnnotationBeanPostProcessor处理,如果您在XML中具有<component-scan><annotation-config>配置(或直接使用bean定义),则通常会注册<annotation-config>注释。您需要添加其中任何一个,可能是@Bean public static PropertySourcesPlaceholderConfigurer propertyPlaceholderConfigurer() { return new PropertySourcesPlaceholderConfigurer(); }

如果尚未完成,请在Config类中添加以下bean声明

@Value

要使PropertySourcesPlaceholderConfigurer注释工作<context:property-placeholder>,应注册。它在XML中使用@Bean时自动完成,但在使用@Configuration时应注册为静态{{1}}。