spring容器启动-源码分析-AnnotationConfigApplicationContext--this()--1
2021/6/21 11:56:07
本文主要是介绍spring容器启动-源码分析-AnnotationConfigApplicationContext--this()--1,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前段时间,通过画脑图记录的方式深入分析了一下:spring底层容器的刷新过程,现在拆分为博客,分享一下。后面会附上脑图的原文件,供大家查看。
public class BeanAutowired { public static void main(String[] args) { ApplicationContext applicationContext = new AnnotationConfigApplicationContext(BeanConfig.class); String[] beanDefinitionNames = applicationContext.getBeanDefinitionNames(); for (String beanDefinitionName : beanDefinitionNames) { System.out.println(beanDefinitionName); } } }
这个是代码入口,基于spring Initalizr,新建一个springboot项目就好。sping会自动引入,相关jar。 重要前言:本源码分析,限于:基于注解的容器刷新,和spingboot没有关系,属于最底层的ioc容器刷新过程。后续,有时间,再写基于springboot的源码分析。 进入源码AnnotationConfigApplicationContext,构造器
public AnnotationConfigApplicationContext(Class<?>... componentClasses) { this();//AnnotationConfigApplicationContext容器无参构造器;======父级GenericApplicationContext();无参构造器。创建this.beanFactory = new DefaultListableBeanFactory(); register(componentClasses);//注册相关信息 refresh();//刷新容器。核心 }
进入this();
进入this.reader = new AnnotatedBeanDefinitionReader(this);
进入:this.conditionEvaluator = new ConditionEvaluator(registry, environment, null); 配置基本的环境信息
进入:AnnotationConfigUtils.registerAnnotationConfigProcessors(this.registry);注册各个注解模式需要的后置处理器, 默认工厂也是在这里设置的
进入:
this.scanner = new ClassPathBeanDefinitionScanner(this); 指定bean定义扫描器,@Component注解的支持,就是在这里设置的。
至此,AnnotationConfigApplicationContext源码的第二行:this();就分析完了。主要是设置一些基础的功能。后面继续分析
这篇关于spring容器启动-源码分析-AnnotationConfigApplicationContext--this()--1的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-06小米11i印度快充版ROM合集:极致体验,超越期待
- 2024-10-06【ROM下载】小米11i 5G 印度版系统, 疾速跃迁,定义新速度
- 2024-10-06【ROM下载】小米 11 青春活力版,青春无极限,活力全开
- 2024-10-05小米13T Pro系统合集:性能与摄影的极致融合,值得你升级的系统ROM
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求