springboot 启动过程【版本2.7.8】

构造SpringApplication对象

1、推测web应用类型

如果项目依赖中存在org.springframework.web.reactive.DispatcherHandler,并且不存在 org.springframework.web.servlet.DispatcherServlet,那么应用类型为WebApplicationType.REACTIVE
如果项目依赖中不存在org.springframework.web.reactive.DispatcherHandler,也不存在 org.springframework.web.servlet.DispatcherServlet,那么应用类型为WebApplicationType.NONE
否则,应用类型为WebApplicationType.SERVLET

2、获取BootstrapRegistryInitializer对象

从"META-INF/spring.factories"中读取key为BootstrapRegistryInitializer类型的扩展点,并实例化出对应扩展点 对象

注意:1、是类加载器能找到的"META-INF/spring.factories",包括当前的和jar包的,各种应用 2、同时这些文件的属性,以kv键值对的形式放在缓存中

BootstrapRegistryInitializer的作用是可以初始化BootstrapRegistry

上面的DefaultBootstrapContext对象就是一个BootstrapRegistry,可以用来注册一些对象,这些对象可以用在从S

你可能感兴趣的:(springboot,1024程序员节)