Java-SpringBoot的启动流程(八股)

简要回答:

SpringBoot启动主要从main方法开始,调用SpringApplication.run()。

先初始化SpringApplication,这时候会判断应用类型是Web还是普通环境,确定用哪个应用上下文类。

接着准备应用环境,读取配置文件。(读取配置文件比如application.properties,还有命令行参数这些配置信息)。(命令行参数是什么:格式是 --配置项名=值 例如:--server.port=8088 --spring.profiles.active=prod 优先级比配置文件的还高)。

然后创建应用上下文,根据前面判断的环境类型选对应的上下文。之后刷新上下文,这一步会扫描项目里的Bean并注册到容器,同时处理@EEnableAutoConfiguration注解,加载META-INF/spring.factories里的自动配置类,根据条件注解决定那些配置生效。

最后启动嵌入式服务器,这样应用启动完成可以对外提供服务了。

相关推荐
张小洛2 分钟前
Spring 常用类深度剖析(工具篇 02):ReflectionUtils——优雅操作反射的利器
java·后端·spring·工具类·spring常用类
GoodStudyAndDayDayUp19 分钟前
RUO-VUE-PRO权限关联sql
java·数据库·sql
码界奇点21 分钟前
基于Spring Boot和MyBatis的图书管理系统设计与实现
spring boot·后端·车载系统·毕业设计·mybatis·源代码管理
⑩-34 分钟前
RabbitMQ 架构和工作原理?RabbitMQ 延迟队列如何实现?
java·分布式·架构·rabbitmq
子非鱼@Itfuture35 分钟前
try-catch和try-with-resources区别是什么?try{}catch(){}和try(){}catch(){}有什么好处?
java·开发语言
Nyarlathotep01131 小时前
线程创建和Thread类
java
阿波罗尼亚1 小时前
JDK17 新特性
java
独自破碎E1 小时前
【面试真题拆解】Spring事务机制
java·spring·面试
我是咸鱼不闲呀1 小时前
力扣Hot100系列21(Java)——[多维动态规划]总结(不同路径,最小路径和,最长回文子串,最长公共子序列, 编辑距离)
java·leetcode·动态规划
Luna-player1 小时前
第3章 Spring Boot的Web应用支持,个人学习笔记
前端·spring boot·学习