我是靠谱客的博主 震动哑铃,最近开发中收集的这篇文章主要介绍关于,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

<context:annotation-config/>

<context:component-scan base-package=”xx.xx”annotation-config=true/>

最近有两个配置项有点疑惑,特在网上查了些解释    


<context:annotation-config/>的作用是向Spring容器注册以下四个BeanPostProcessor:

  • AutowiredAnnotationBeanPostProcessor
  • CommonAnnotationBeanPostProcessor
  • PersistenceAnnotationBeanPostProcessor
  • RequiredAnnotationBeanPostProcessor


以上BeanPostProcessor作用如下:

1、如果想使用@Autowired注解,那么就必须事先在 Spring 容器中声明

AutowiredAnnotationBeanPostProcessor Bean。

传统声明方式如下

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

 

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

传统配置方式:

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


3、如果想使用@PersistenceContext注解,就必须声明PersistenceAnnotationBeanPostProcessor的Bean。

传统配置方式:

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


4、如果想使用@Required的注解,就必须声明RequiredAnnotationBeanPostProcessor的Bean。

传统配置方式:

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


所以<context:annotation-config/>作用就是可以自动注入上述的Bean

而对于<context:component-scan base-package=”xx.xx”/>也包含了自动注入上述Bean的功能,

并且<context:component-scan base-package=”xx.xx”annotation-config=true/>功能一样,原因是annotation-config=true为默认值

所以<context:annotation-config/> 可以省略。

如果两者都进行了配置,则只有前者有效。

简单点说就是:


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

过package sanning的方式)上面的注解。

<context:component-scan>除了具有<context:annotation-config>的功能之外<context:component-scan>

还可以在指定的package下扫描以及注册javabean 。


最后

以上就是震动哑铃为你收集整理的关于的全部内容,希望文章能够帮你解决关于所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部