SpringBoot外表轻巧简单,但是它内部确实十分的复杂。其通过自动配置机制,根据应用程序的类路径和依赖关系,自动为应用程序提供合适的配置。例如,如果应用程序引入了数据库相关的依赖,Spring Boot会自动配置数据库连接池和数据源。
Spring Boot默认使用Tomcat作为内嵌的Servlet容器,通过启动类解决自动配置、组件扫描等直接快速启动。
我们本次不对内部复杂的内容进行详细介绍,仅对springboot的启动进行梳理。众所周知,SpringApplication 类是启动类,我们就从springApplication开始着重分析下springboot的启动过程。
SpringApplication 这个类主要做了以下四件事情:
1. 推断应用的类型是普通的项目还是Web 项目
2. 查找并加载所有可用初始化器 , 设置到 initializers 属性中
3. 找出所有的应用程序监听器,设置到 listeners 属性中
4. 推断并设置 main 方法的定义类,找到运行的主类。
SpringBoot 启动大致流程如下:
以上为全部内容。