
springboot 启动过程全解
文章平均质量分 58
对springboot启动过程debug,并对涉及概念进行最详细的分析
芒骁
用代码改变世界
展开
-
PostProcessorRegistrationDelegate #invokeBeanFactoryPostProcessors
之前向工厂放入的BeanDefinition总结:判断当前的beanFactory是不是Bean注册中心?如果是,强转为Bean注册中心新建两个LinkedList作为BeanFactoryPostProcessor和BeanDefinitionRegistryPostProcessor的存储集合。2. 首先遍历BeanFactoryPostProcessor public static void invokeBeanFactoryPostProcessors(ConfigurableLis.原创 2021-12-27 12:30:06 · 408 阅读 · 0 评论 -
this.refreshContext(context);
this.refreshContext(context);当前context类型: private void refreshContext(ConfigurableApplicationContext context) { if (this.registerShutdownHook) { shutdownHook.registerApplicationContext(context); } this.refresh...原创 2021-11-24 16:43:14 · 306 阅读 · 0 评论 -
2.5.1 doRegisterBean
AnnotatedBeanDefinitionReader#doRegisterBean()1. 创建AnnotatedGenericBeanDefinition细枝末节,直接跳转具体原创 2021-11-24 16:16:53 · 244 阅读 · 0 评论 -
SpringApplication 实例的创建 -变量listeners-this.setListeners()
listeners = {ArrayList@1846} size = 8 0 = {EnvironmentPostProcessorApplicationListener@1892} deferredLogs = {DeferredLogs@1900} order = -2147483638 postProcessorsFactory = {EnvironmentPostProcessorApplicationListener$lambda@1901} Class has no原创 2021-10-08 10:27:41 · 97 阅读 · 0 评论 -
SpringApplication 实例的创建 -变量initializers初始化
initializers = {ArrayList@1845} size = 7 0 = {DelegatingApplicationContextInitializer@1873} order = 0 1 = {SharedMetadataReaderFactoryContextInitializer@1874} No fields to display 2 = {ContextIdApplicationContextInitializer@1875} order = 21474原创 2021-10-08 10:25:41 · 288 阅读 · 0 评论 -
(二)SpringApplication.run()
refresh方法详解最终调用的是AbstractApplicationContext.refresh即对容器的刷新:1. this.prepareRefresh()主要做的事情:设置容器状态注意两点:容器是容器,BeanFactory是BeanFactory,在Springboot启动过程中,以web类型举例:先创建容器:context = this.createApplicationContext()创建出的是AnnotationConfigServletWebServerAp原创 2021-11-23 10:30:57 · 145 阅读 · 0 评论 -
2.4 context = this.createApplicationContext(); Application.createApplicationContext
Application继续工作,但是此时Context还没有创建好。protected ConfigurableApplicationContext createApplicationContext() { Class<?> contextClass = this.applicationContextClass; if (contextClass == null) { try { switch(this.w原创 2021-11-23 10:51:06 · 312 阅读 · 0 评论