春天@autowired

时间:2009-10-15 05:04:09

标签: java spring spring-mvc

使用@autowired。在xml中,我只需要包含

<context:annotation-config />

我需要放置任何其他标签吗?需要把 componentsnet-scan

很奇怪,我得到错误

ERROR - ContextLoader.initWebApplicationContext(203) | Context initialization fa
iled
org.springframework.beans.factory.BeanCreationException: Error creating bean wit
h name 'org.springframework.context.annotation.internalRequiredAnnotationProcess
or': Initialization of bean failed; nested exception is org.springframework.bean
s.InvalidPropertyException: Invalid property 'order' of bean class [org.springfr
amework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor]: No proper
ty 'order' found
Caused by:
org.springframework.beans.InvalidPropertyException: Invalid property 'order' of
bean class [org.springframework.beans.factory.annotation.RequiredAnnotationBeanP
ostProcessor]: No property 'order' found
        at org.springframework.beans.BeanWrapperImpl.convertForProperty(BeanWrap
perImpl.java:376)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1105)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBean
Factory.populateBean(AbstractAutowireCapableBeanFactory.java:861)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBean

2 个答案:

答案 0 :(得分:2)

Spring {2.5}中引入了<context:annotation-config />选项。在幕后,这将创建并配置RequiredAnnotationBeanPostProcessor,并使用其order属性。在Spring 2.0中,RequiredAnnotationBeanPostProcessor存在,但没有order属性。

我的猜测是你的类路径上有Spring 2.5和2.0。 2.5的副本允许您使用<context:annotation-config />,但之后它使用RequiredAnnotationBeanPostProcessor的2.0副本。

答案 1 :(得分:1)

这看起来像是类路径问题。您是否混合了不同Spring jar的不兼容版本,或者您的类路径中是否有多个RequiredAnnotationBeanPostProcessor类?

该类的早期版本(最高2.0.x)没有订单属性。