<context:annotation-config/>,<context:component-scan/>,<mvc:annotation-driven/>区分

链接:http://blog.csdn.net/baple/article/details/16864175
链接:http://blog.csdn.net/Baple/article/details/16864835
传统的bean声明:<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>

<context:annotation-config/>
向Spring容器注册AutowiredAnnotationBeanPostProcessor,CommonAnnotationBeanPostProcessor,
PersistenceAnnotationBeanPostProcessor,RequiredAnnotationBeanPostProcessor这4个BeanPostProcessor。
注册这4个BeanPostProcessor的作用,就是为了你的系统能够识别相应的注解。
-对于其他没有在spring容器中注册的bean,它不能起到注册bean的作用。

<context:component-scanbase-package=”xx.xx”/>
可以指定package扫描,
可以自动将带有@Autowired,@component,@service,@Repository等注解的对象注册到spring容器中的功能
隐式地在内部注册了AutowiredAnnotationBeanPostProcessor和CommonAnnotationBeanPostProcessor

-因此当使用<context:component-scan/>后,除非需要使用PersistenceAnnotationBeanPostProcessor和RequiredAnnotationBeanPostProcessor两个Processor的功能(例如JPA等)否则就可以将<context:annotation-config/>移除了。

<context:component-scanbase-package="com.baobaotao">
<context:include-filtertype="regex" expression="com\.baobaotao\.service\..*"/>
<context:exclude-filtertype="aspectj" expression="com.baobaotao.util..*"/>
</context:component-scan>


<mvc:annotation-driven/>标签可简化springmvc的相关配置,默认情况下其会创建并注册实例:

DefaultAnnotationHandlerMapping:处理器映射器@Controller(默认注册)
AnnotationMethodHandlerAdapter-:处理器适配器3.2之后换成了RequestMappingHandlerAdapter如下图。

附一篇介绍该源码的博客:http://blog.csdn.net/a67474506/article/details/46364159


StringHttpMessageConverter
ByteArrayHttpMessageConverter
XmlAwareFormHttpMessageConverter
SourceHttpMessageConverter。
FormattingConversionServiceFactoryBean-:ConversionService类型转换
NumberFormatAnnotationFormatterFactory:@NumberFormat格式化
JodaDateTimeFormatAnnotationFormatterFactory::@DateTimeFormat格式化
LocalValidatorFactoryBean:@Valid数据校验

 

来源:http://m.blog.csdn.net/blog/wzmmao/21990397#

posted @ 2015-07-17 10:23  剑握在手  阅读(252)  评论(0编辑  收藏  举报
返回顶部↑