关闭

spring配置中<context:annotation-config> 和 <context:component-scan>区别

标签: spring注解
1964人阅读 评论(0) 收藏 举报
分类:

详细介绍

<context:annotation-config> 是用于激活那些已经在spring容器里注册过的bean(无论是通过xml的方式还是通过package sanning的方式)上面的注解。

<context:component-scan>除了具有<context:annotation-config>的功能之外,<context:component-scan>还可以在指定的package下扫描以及注册javabean 。

1、<context:annotation-config/>配置作用:

他的作用是式地向 Spring 容器注册AutowiredAnnotationBeanPostProcessorCommonAnnotationBeanPostProcessor
PersistenceAnnotationBeanPostProcessor 以及 RequiredAnnotationBeanPostProcessor  BeanPostProcessor

注册这4 BeanPostProcessor的作用,就是为了你的系统能够识别相应的注解。

例如:

如果你想使用@Autowired注解,那么就必须事先在 Spring 容器中声明 AutowiredAnnotationBeanPostProcessor Bean。传统声明方式如下

<bean class="org.springframework.beans.factory.annotation. AutowiredAnnotationBeanPostProcessor "/> 

如果想使用@ Resource @ PostConstruct@ PreDestroy等注解就必须声明CommonAnnotationBeanPostProcessor

如果想使用@PersistenceContext注解,就必须声明PersistenceAnnotationBeanPostProcessorBean

如果想使用 @Required的注解,就必须声明RequiredAnnotationBeanPostProcessorBean。同样,传统的声明方式如下:

<bean class="org.springframework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor"/> 

一般来说,这些注解我们还是比较常用,尤其是Antowired的注解,在自动注入的时候更是经常使用,所以如果总是需要按照传统的方式一条一条配置显得有些繁琐和没有必要,于是spring给我们提供<context:annotation-config/>的简化配置方式,自动帮你完成声明。

不过,呵呵,我们使用注解一般都会配置扫描包路径选项

<context:component-scan base-package=”XX.XX”/> 

    该配置项其实也包含了自动注入上述processor的功能,因此当使用 <context:component-scan/> 后,就可以将 <context:annotation-config/> 移除了

原文章连接地址



2
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

spring源码学习之五 </context:component-scan>元素处理过程

概述在spring的配置文件中,通常会配置自动扫描包路径下的bean,而元素即用来实现该功能,下面是一个配置简单实例: <context:exclude-filter type...
  • wenjiangchun
  • wenjiangchun
  • 2016-02-15 17:36
  • 2210

Spring MVC集成其他带来的事务注解无效之context:component-scan扫描使用上的容易忽略的use-default-filters

这两天,在使用公司的框架开发进行数据存储shi
  • GrayWoft
  • GrayWoft
  • 2014-06-19 22:19
  • 4486

关于component-scan中base-package包含通配符的问题探究

今天在配置Spring的component-scan时,发现了一个有趣的问题。就是在指定base-package时,如果使用了星号通配符*,有时会出现类扫描不到的情况。下面研究一下这个问题。先介绍一下...
  • u012325167
  • u012325167
  • 2017-07-19 15:19
  • 1311

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

在这篇文章中,我将介绍和标签的区别,将来再使用它们的时候能够清楚的知道你在干什么 首先,是用来激活已经在application context中注册的bean。注意,不管你使用那种注册的方式都是可以...
  • maoyeqiu
  • maoyeqiu
  • 2015-10-26 12:30
  • 1071

spring <context:annotation-config> 跟 <context:component-scan>诠释及区别

和 的区别 Difference between vs    是用于激活那些已经在spring容器里注册过的bean(无论是通过xml的方式还是通过package sanni...
  • lzy295481710
  • lzy295481710
  • 2014-08-18 10:16
  • 398

GOOD spring <context:annotation-config> 跟 <context:component-scan>诠释及区别

和 的区别 Difference between vs    是用于激活那些已经在spring容器里注册过的bean(无论是通过xml的方式还是通过package sanning的方式)上...
  • Baple
  • Baple
  • 2013-11-21 18:15
  • 18550

Spring配置中<context:annotation-config> VS <context:component-scan>

Spring 中在使用注解(Annotation)会涉及到 和 配置,下面就对这两个配置进行诠释。
  • u010648555
  • u010648555
  • 2017-07-30 10:47
  • 343

Spring 开启Annotation <context:annotation-config> 和 <context:component-scan>诠释及区别

Spring 开启Annotation 和 诠释及区别 和 的区别 是用于激活那些已经在spring容器里注册过的bean(无论是通过xml的方式还是通过package sannin...
  • veryboy123
  • veryboy123
  • 2014-08-11 10:36
  • 362

<context:annotation-config>与<context:component-scan>的区别

<context:annotation-config>与<context:component-scan>的区别声明:本文转自stackoverflow;讲解十分详细,十分精彩,特此分享到CSDN;有时...
  • Love_Legain
  • Love_Legain
  • 2017-03-02 12:00
  • 249

<context:annotation-config> vs <context:component-scan> 的区别

本文摘自stack overflow.详细解释请看如下: http://stackoverflow.com/questions/7414794/difference-between-contexta...
  • dajijidanaizi
  • dajijidanaizi
  • 2016-04-05 15:02
  • 424
    个人资料
    • 访问:56328次
    • 积分:801
    • 等级:
    • 排名:千里之外
    • 原创:18篇
    • 转载:24篇
    • 译文:0篇
    • 评论:8条
    文章分类
    最新评论