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

转载 2016年05月31日 12:19:38

详细介绍

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

原文章连接地址



举报

相关文章推荐

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

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

spring中<context:annotation-config> 跟 <context:component-scan>的区别

在Spring中,很多人对和量是用于激活那些已经在spring容器里注册过的bean(无论是通过xml的方式还是通过package sanning的方式)上面的注解。 除了具有的功能之外,还...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

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

Spring 中在使用注解(Annotation)会涉及到 和 配置,下面就对这两个配置进行诠释。

context:annotation-config配置和context:component-scan配置

在基于注解方式配置Spring的配置文件中,你可能会见到这样一条配置,他的作用是式地向 Spring 容器注册 AutowiredAnnotationBeanPostProcessor、 ...

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

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

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

本文摘自stack overflow.详细解释请看如下: http://stackoverflow.com/questions/7414794/difference-between-contexta...

Spring <context:component-scan base-package="">和<context:annotation-config>

Spring2.5中使用注解装配属性  可在Java代码中使用@Resource或者@Autowired注解进行装配,但需在XML中配置以下信息  xmlns:context="http://ww...

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

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

<context:component-scan base-package=""> <context:annotation-config>

这句的作用: context:component-scan/> 配置项不但启用了对类包进行扫描以实施注释驱动 Bean 定义的功能,    同时还启用了注释驱动自动注入的功能   &#...

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

Spring 开启Annotation 和 诠释及区别 和 的区别 是用于激活那些已经在spring容器里注册过的bean(无论是通过xml的方式还是通过package sannin...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)