spring boot启动流程
2024-07-12 16:14:49 0 举报
AI智能生成
123
作者其他创作
大纲/内容
Spring Boot的初始化阶段
加载Spring Boot的自动配置类
通过
设置Spring Boot的Banner
从Spring Boot的jar包中的classpath下加载banner文件
默认banner
自定义banner
解析Spring Boot的配置文件
加载application.properties或application.yml文件
解析配置文件的属性
将属性绑定到Spring Environment中
Spring Boot的事件发布机制
ApplicationStartingEvent事件
触发时机
事件监听器
ApplicationReadyEvent事件
触发时机
事件监听器
SpringBootApplication注解引入
解析
SpringBootApplication注解
加载
EnableAutoConfiguration注解
从META-INF/spring.factories文件中加载自动配置类
Spring Boot的ApplicationContext创建阶段
创建AnnotationConfigApplicationContext或SpringApplicationContext
设置ApplicationContext的类加载器
设置父类加载器
设置线程上下文类加载器
设置ApplicationContext的环境
设置Profile
设置属性源
注册BeanDefinition
扫描
Spring Boot的Bean加载阶段
实例化Bean
通过构造器实例化
通过工厂方法实例化
依赖注入
字段注入
构造器注入
setter方法注入
Bean的初始化
执行
Spring Boot的Bean初始化完成阶段
触发ApplicationRunner或CommandLineRunner的run方法
执行用户自定义的启动逻辑
发布ApplicationReadyEvent事件
通知所有监听器Spring Boot应用已经就绪
ComponentScan指定的包路径
加载
Component、
Service、
Repository、
Controller等注解的类
从
Import注解中加载配置类
加载Java Config类
加载XML配置
PostConstruct注解的方法
执行InitializingBean接口的afterPropertiesSet方法
Spring Boot的关闭阶段
关闭ApplicationContext
销毁所有单例Bean
执行
关闭Spring Boot的嵌入式服务器(如Tomcat)
停止服务器
停止所有正在处理的请求
关闭所有网络连接
发布ApplicationFailedEvent事件(如果启动失败)
通知所有监听器Spring Boot应用启动失败的原因
PreDestroy注解的方法
执行DisposableBean接口的destroy方法
收藏
0 条评论
下一页