<context:annotation-config/>配置对于使用注解装配bean提供了一定的支持
根据Spring文档主要注册如下四个
AutowiredAnnotationBeanPostProcessor,CommonAnnotationBeanPostProcessor,RequiredAnnotationBeanPostProcessor,PersistenceAnnotationBeanPostProcessor 。
这四个BeanPostProcessor分别有不同的支持,提供不同的注解需要。
AutowiredAnnotationBeanPostProcessor 支持装配fields, 是settermethod,以及任意的配置方法,默认支持使用@Autowired,@Value
CommonAnnotationBeanPostProcessor 支持使用JSR-250 javax 注解装配bean,默认支持@ Resource ,@ PostConstruct,@ PreDestroy注解
PersistenceAnnotationBeanPostProcessor 支持@PersistenceContext注解
RequiredAnnotationBeanPostProcessor 支持@Required注解
对于以上这些bean都是分开注册,加入你只想用到@Autowired 注解 直接 xml 配置里面写上
<bean class="org.springframework.beans.factory.annotation. AutowiredAnnotationBeanPostProcessor "/>
就可以了,其他没有注册的BeanPostProcessor所支持的注解也就检测不到了
不过我们使用注解一般都会配置扫描包路径选项
<context:component-scan base-package=”XX.XX”/>
该配置项其实也包含了自动注入上述processor的功能,因此当使用 <context:component-scan/> 后,就可以将 <context:annotation-config/> 移除了。