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

简要回答:

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

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

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

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

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

相关推荐
万年咸鱼15 小时前
Java BufferedOutputStream 详解:原理、用法与性能优化
java·开发语言·性能优化
万年咸鱼15 小时前
Java BufferedInputStream 详解:原理、用法与实战
java·开发语言·python
~木雨15 小时前
Java 线程池七问七答:参数、执行流程、拒绝策略到 ThreadLocal 内存泄漏,面试必背
java·面试·线程池·threadlocal·threadpool·executor
艾莉丝努力练剑15 小时前
【AI大模型接入SDK】Gemini模型接入知识体系
java·开发语言·网络·人工智能·网络协议·学习·http
云运维笔记15 小时前
Zabbix 分布式监控搭建实战:基于 Proxy 实现 MySQL、Java、Nginx 监控
java·mysql·zabbix
zhanghaha131415 小时前
Python进阶教程:28_queue 队列模块 零基础超详细教程
java·开发语言·python
司小豆15 小时前
第七课:DeepSeek Harness 服务与依赖注入
java·服务器·开发语言·github·ai编程
许彰午16 小时前
24-MyBatisHelper与autoCount
java·低代码·架构
CRMEB系统商城16 小时前
汽车养护连锁的数字化底座CRMEB 多门店系统实战方案
java·开发语言·小程序·开源·汽车
学编程就要猛16 小时前
使用Spring AI配置聊天大模型实现人机交互(初阶)
java·spring ai·advisor·chatclient·chatmodel