<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/> 移除了。