阿古达芝麻开门 - 博客园
摘要: 最后我们用“Springboot中有哪些扩展点”这个话题来回顾一下Springboot的内容。SpringBoot和Spring中提供了很多扩展点,给开发者一个很大的灵活空间,按照启动的调用顺序,大概有如下扩展点。 ApplicationContextInitializerSpringboot中默认 阅读全文 »
posted @ 2021-04-05 09:01 阿古达芝麻开门 阅读(1273) 评论(0) 推荐(0) 编辑
摘要: 通过前面的章节我们知道Springboot会调用ServletWebServerApplicationContext#getWebServer方法启动tomcat 最终会调用TomcatWebServer#initialize这个方法,然后再调用tomcat#start方法,然后调用Lifecycl 阅读全文 »
posted @ 2021-04-05 08:59 阿古达芝麻开门 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 开始之前建议先了解什么是Spring的 FactoryBean: Spring中有两种类型的Bean,一种是普通Bean,另一种是工厂Bean,即FactoryBean。Spring FactoryBean是创建复杂的bean,一般的bean直接用xml配置即可,如果一个bean的创建过程中涉及到很 阅读全文 »
posted @ 2021-04-05 08:58 阿古达芝麻开门 阅读(313) 评论(0) 推荐(0) 编辑
摘要: 在autoconfigure模块的spring.factories中,有自动配置类DispatcherServletAutoConfiguration: 进入这个配置类,可以知道这个自动配置只有是Web Application并且发现有DispatcherServlet类的时候才会生效。 那么是什么 阅读全文 »
posted @ 2021-04-05 08:57 阿古达芝麻开门 阅读(277) 评论(0) 推荐(0) 编辑
摘要: PartA: ServletWebServerFactory factory = getWebServerFactory(); 首先获取到beanName是tomcatServletWebServerFactory: 然后调用开始调用AbstractBeanFactory#doGetBean开始创建 阅读全文 »
posted @ 2021-04-05 08:56 阿古达芝麻开门 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 这里主要关注onRefresh和finishBeanFactoryInitialization: 我们选择看finishBeanFactoryInitialization(beanFactory);,经过调试最终会调用AbstractBeanFactory#doGetBean方法创建Bean: fi 阅读全文 »
posted @ 2021-04-05 08:55 阿古达芝麻开门 阅读(167) 评论(0) 推荐(0) 编辑
摘要: ConfigurationClassPostProcessor#parser.parse(candidates)执行完成之后,parser对象中的configurationClasses从0个变成了45个,所以可以知道parser.parse(candidates)是根据传入的启动类找到了某些配置类 阅读全文 »
posted @ 2021-04-05 08:54 阿古达芝麻开门 阅读(324) 评论(0) 推荐(0) 编辑
摘要: createApplicationContext完成后,加载了6个BeanDefinition,此时还没有实例化任何单例,由此可以知道BeanDefinition不是一下子把所有的都加载进来的,适当的时间加载对应的BeanDefinition: prepareContext完成之后,把启动类的Bea 阅读全文 »
posted @ 2021-04-05 08:51 阿古达芝麻开门 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 我们知道,一般在Springboot的启动类里面都会有SpringBootApplication注解: 然后在启动方法中传入启动类: 那么这个启动类传入进去按道理应该是在适当的时候找到需要的注解并进行解析吧...经过一段研究,最终在ConfigurationClassParser#collectIm 阅读全文 »
posted @ 2021-04-05 08:50 阿古达芝麻开门 阅读(338) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示