似乎已经有人问过这个问题,Spring 3.0.5不会从属性中评估@Value批注
Web应用程序根目录和servlet应用程序上下文之间的差异是Spring造成混淆的最主要原因之一,请参阅 Spring framework中applicationContext.xml和spring-servlet.xml之间的差异
从
@Valuejavadoc:
请注意,@ Value批注的实际处理是由BeanPostProcessor执行的
从Spring文档中:
BeanPostProcessor接口是按容器划分作用域的。仅在使用容器层次结构时才有意义。如果在一个容器中定义BeanPostProcessor,它将仅对该容器中的bean进行工作。在一个容器中定义的Bean不会由另一个容器中的BeanPostProcessor进行后处理,即使这两个容器属于同一层次结构也是如此。



