Spring <context:annotation-config>和<context:component-scan>区别

来源:互联网 发布:人工智能专业大学排名 编辑:程序博客网 时间:2024/06/05 12:01

<context:annotation-config>:用于激活那些已经在spring容器里注册过的bean上面的注解

显式地向 Spring 容器注册

AutowiredAnnotationBeanPostProcessor、

CommonAnnotationBeanPostProcessor、

PersistenceAnnotationBeanPostProcessor 、

RequiredAnnotationBeanPostProcessor 这 4 个BeanPostProcessor。

如果想使用@Resource、@PostConstruct、@PreDestroy等注解就必须声明CommonAnnotationBeanPostProcessor。 
如果想使用@PersistenceContext注解,就必须声明PersistenceAnnotationBeanPostProcessor的Bean。 
如果想使用@Autowired注解,那么就必须事先在 Spring 容器中声明 AutowiredAnnotationBeanPostProcessor Bean。 
如果想使用@Required的注解,就必须声明RequiredAnnotationBeanPostProcessor的Bean。


<context:component-scan>:除了具有<context:annotation-config>的功能之外,还具有自动将带有@component,@service,@Repository等注解的对象注册到spring容器中的功能。


<context:annotation-config />和 <context:component-scan>同时存在的时候,前者会被忽略。因此当使用 <context:component-scan/> 后,就可以将 <context:annotation-config/> 移除了。


参考文章:

http://www.cnblogs.com/leiOOlei/p/3713989.html

http://stackoverflow.com/questions/7414794/difference-between-contextannotation-config-vs-contextcomponent-scan/

0 0
原创粉丝点击