【Spring实战】Spring注解配置工作原理源码解析
- 作者: 五速梦信息网
- 时间: 2026年04月04日 13:55
registerComponents(parserContext.getReaderContext(), beanDefinitions, element);
protected void registerComponents(
XmlReaderContext readerContext, Set<BeanDefinitionHolder> beanDefinitions, Element element) {
Object source = readerContext.extractSource(element);
CompositeComponentDefinition compositeDef = new CompositeComponentDefinition(element.getTagName(), source);
for (BeanDefinitionHolder beanDefHolder : beanDefinitions) {
compositeDef.addNestedComponent(new BeanComponentDefinition(beanDefHolder));
}
// Register annotation config processors, if necessary.
boolean annotationConfig = true;
if (element.hasAttribute(ANNOTATION_CONFIG_ATTRIBUTE)) { //本例中没有配置annotation-config,默认为true
annotationConfig = Boolean.valueOf(element.getAttribute(ANNOTATION_CONFIG_ATTRIBUTE));
}
if (annotationConfig) {
Set<BeanDefinitionHolder> processorDefinitions =
AnnotationConfigUtils.registerAnnotationConfigProcessors(readerContext.getRegistry(), source); //注册注解处理器
for (BeanDefinitionHolder processorDefinition : processorDefinitions) {
compositeDef.addNestedComponent(new BeanComponentDefinition(processorDefinition));
}
}
readerContext.fireComponentRegistered(compositeDef); //目前没啥卵用,EmptyReaderEventListener.java中都是空操作,扩展用
}
上述代码的作用主要是注册注解处理器,本例中没有配置annotation-config,默认值为true,这里也就说明了为什么配置了<context:component-scan>标签就不需要再配置<context:annotation-config>标签的原因。看下注册注解处理器:
- 上一篇: 【SQLServer】【恢复挂起的解决方案】附加文件时候的提示“无法重新生成日志,原因是数据库关闭时存在打开的事务用户,该数据库没有检查点或者该数据库是只读的。 ”【数据库恢复】
- 下一篇: 【Spring】获取资源文件+从File+从InputStream对象获取正文数据
相关文章
-
【SQLServer】【恢复挂起的解决方案】附加文件时候的提示“无法重新生成日志,原因是数据库关闭时存在打开的事务用户,该数据库没有检查点或者该数据库是只读的。 ”【数据库恢复】
【SQLServer】【恢复挂起的解决方案】附加文件时候的提示“无法重新生成日志,原因是数据库关闭时存在打开的事务用户,该数据库没有检查点或者该数据库是只读的。 ”【数据库恢复】
- 互联网
- 2026年04月04日
-
【STM32学习笔记】STM32f407 使用44矩阵键盘
【STM32学习笔记】STM32f407 使用44矩阵键盘
- 互联网
- 2026年04月04日
-
【Ubuntu】更新系统时出现Hash校验和不符的错误(已解决)
【Ubuntu】更新系统时出现Hash校验和不符的错误(已解决)
- 互联网
- 2026年04月04日
-
【Spring】获取资源文件+从File+从InputStream对象获取正文数据
【Spring】获取资源文件+从File+从InputStream对象获取正文数据
- 互联网
- 2026年04月04日
-
【Shell脚本编程系列】知识储备以及建立规范的脚本
【Shell脚本编程系列】知识储备以及建立规范的脚本
- 互联网
- 2026年04月04日
-
【SFA官方翻译】使用 Kubernetes
【SFA官方翻译】使用 Kubernetes
- 互联网
- 2026年04月04日






