随笔分类 - SpringBoot成长记
摘要:前面10节的回顾 通过前面10节SpringBoot成长记的分析,你应该对SpringBoot的原理和设计思想有了很清晰的认识了。 最后这一节呢,我们将之前每一节最重要的知识点,提取出来一个总结。 第一节成长记1:你真的懂SpringBoot吗? 我们通过去官方文档寻找SpringBoot核心功能,
阅读全文
摘要:之前我们已经分析SpringBoot在run方法时,它会执行的refresh()容器的操作。 在SpringBoot中,refresh()有十几个方法,每个方法的大重要程度是不一样的,我们通过抓大放小的方式,分析处理上图3个核心逻辑。 并且已经研究完了invokeBeanFactoryPostPro
阅读全文
摘要:上一节我们主要分析了refreshContext中,主要有3个逻辑,如下图: 上一节重点解析了invokeBeanFactoryPostProcessors执行容器扩展点,实现了自动装备配置、第三方执行扩展的执行。 今天我们继续分析refreshContext另一个重要的逻辑onRefresh()逻
阅读全文
摘要:前面我们摸清楚了整个invokeBeanFactoryPostProcessors方法的if-else逻辑和3个for循环的核心脉络逻辑。 接下来我们来看下细节,我会通过抓大放小的思想,带大家看到在扩展点执行的过程中,最最要的有哪一些。 SpringBoot的自动装配配置如何做到的、第三方技术如何进
阅读全文
摘要:目前我们分析的代码已经到了容器处理相关的SpringBoot原理,代码如下: public ConfigurableApplicationContext run(String... args) { //DONE 扩展点 SpringApplicationRunListeners listeners.
阅读全文
摘要:前面你熟悉了SpringBoot的扩展点SpringApplicationRunListeners的设计,配置文件ConfigurableEnvironment的抽象封装。其实这些都还不是它最核心的,最最核心的时Spring的容器的创建和准备,自动配置的装配,tomcat的容器的启动。 这一节我们就
阅读全文
摘要:上一节的创建了容器对象,核心就是创建了Context和BeanFactory对象,内部初始化了Reader和Scanner,加载了一些内部Bean等。 已经分析的逻辑代码如下: public ConfigurableApplicationContext run(String... args) { /
阅读全文
摘要:上一节,我们主要了解了SpringBoot的一个扩展点设计SpringApplicationRunListeners。并没有找到我们想要找到的Spring容器创建和web容器启动、自动装配配置的这些核心功能。 之前我们说过,xxxxEnvironment表示了配置文件的封装,这一节就让我们来看下,S
阅读全文
摘要:上一节我们熟悉了SpringApplication的创建和run方法的脉络。这一节就来先分析下脉络的中第一个比较有意思的扩展点—SpringApplicationRunListeners。 如下: SpringApplicationRunListeners在run方法中位置 在之前的run方法中,很
阅读全文
摘要:上一节我们提到过,认识一个新技术的时候,通常是从一个入门的HelloWorld开始,之后阅读它的一些入门文档和书籍、视频,从而掌握它的基本使用。 这一节我就来带大家从HelloWorld开始,先摸清楚SpringBoot的核心脉络,之后再来逐步分析透彻SpringBoot,从而精通它。 从搭建Hel
阅读全文
摘要:众所周知,Spring是java中应用最为广泛的框架,而近些年来SpringBoot的兴起,让Spring的应用和便利更上一层楼。 今天我们第一节,就来认识下SpringBoot给我带来什么,它的核心特点是哪些。 认识一个新技术的时候,通常是从一个入门的HelloWorld开始,之后阅读它的一些入门
阅读全文