[b]spring 3.1.1 使用 @Value 注解无法注入属性. [/b]
是Spring Frame 管理 Bean 实例的 Factory.
[quote]DefaultListableBeanFactory[/quote]
在 ApplicationContext postProcessBeanFactory 时会调用下面这个方法.
[quote]org.springframework.beans.factory.config.PlaceholderConfigurerSupport.doProcessProperties[/quote]
将 StringValueResolver 的实现 PlaceholderResolvingStringValueResolver 的实例添加到 BeanFactory 的实例中 [quote]org.springframework.beans.factory.support.AbstractBeanFactory.addEmbeddedValueResolver[/quote]
[quote]AbstractBeanFactory[/quote] 是 [quote]DefaultListableBeanFactory[/quote] 父类.
在 [quote]Initializing Spring FrameworkServlet 'spring'[/quote] 时,会再次创建一个 [quote]DefaultListableBeanFactory[/quote]实例. 原来的实例会作为 [quote]parentBeanFactory[/quote] 属性存在. 导致 StringValueResolver 丢失.
Ref:
http://stackoverflow.com/questions/11890544/spring-value-annotation-in-controller-class-not-evaluating-to-value-inside-pro
是Spring Frame 管理 Bean 实例的 Factory.
[quote]DefaultListableBeanFactory[/quote]
在 ApplicationContext postProcessBeanFactory 时会调用下面这个方法.
[quote]org.springframework.beans.factory.config.PlaceholderConfigurerSupport.doProcessProperties[/quote]
将 StringValueResolver 的实现 PlaceholderResolvingStringValueResolver 的实例添加到 BeanFactory 的实例中 [quote]org.springframework.beans.factory.support.AbstractBeanFactory.addEmbeddedValueResolver[/quote]
[quote]AbstractBeanFactory[/quote] 是 [quote]DefaultListableBeanFactory[/quote] 父类.
在 [quote]Initializing Spring FrameworkServlet 'spring'[/quote] 时,会再次创建一个 [quote]DefaultListableBeanFactory[/quote]实例. 原来的实例会作为 [quote]parentBeanFactory[/quote] 属性存在. 导致 StringValueResolver 丢失.
Ref:
http://stackoverflow.com/questions/11890544/spring-value-annotation-in-controller-class-not-evaluating-to-value-inside-pro