首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
说说Spring Boot的启动流程。
[问答题]
说说Spring Boot的启动流程。
查看答案及解析
添加笔记
求解答(0)
邀请回答
收藏(229)
分享
纠错
60个回答
添加回答
104
你看起来很好吃0
starter配置,约定大于配置,spring boot将日常企业应用研发中的各种场景都抽取出来,做成一个个的starter(启动器),starter中整合了该场景下各种可能用带的依赖,用户只需要在Maven中引入starter依赖,spring boot就能自动扫描到要加载的信息并启动响应的默认配置
发表于 2022-05-05 13:38:00
回复(0)
28
hahhahaha
得分点:starter配置,约定大于配置 标准回答: 1.Spring Boot 将日常企业应用研发中的各种场景都抽取出来,做成一个个的 starter(启动器)。 2.starter 中整合了该场景下各种可能用到的依赖,用户只需要在 Maven 中引入 starter 依赖,SpringBoot 就能自动扫描到要加载的信息并启动相应的默认配置。 3.starter 提供了大量的自动配置,让用户摆脱了处理各种依赖和配置的困扰。所有这些 starter 都遵循着约定成俗的默认配置,并允许用户调整这些配置,即遵循“约定大于配置”的原则。 4.那么我们看构建的项目的pom.xml文件中的starter配置。 <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-web</artifactid> </dependency> 以 spring-boot-starter-web 为例,它能够为提供 Web 开发场景所需要的几乎所有依赖,因此在使用 Spring Boot 开发 Web 项目时,只需要引入该 Starter 即可,而不需要额外导入 Web 服务器和其他的 Web 依赖。 加分回答:有时在引入starter时,我们并不需要指明版本(version),这是因为starter版本信息是由 spring-boot-starter-parent(版本仲裁中心) 统一控制的。
发表于 2023-07-31 19:46:02
回复(2)
23
牛客_正
将开发的各种场景做成starter依赖,springboot就能自动扫描并启动相应配置
发表于 2022-07-05 10:26:23
回复(0)
9
别打小书包唉
SpringBoot将日常企业应用研发中的各种常见都抽取出来,做成一个个的starter(启动器),starter中整合了该场景下各种可能用到的依赖,用户只需要在Maven中引入starter依赖,SpringBoot就能自动扫描到要加载的信息并启动相应的默认配置。starter提供了大量的自动配置,让用户摆脱了处理各种依赖和配置的困扰。所有这些starter都遵循这约定俗成的默认配置,并允许用户调整这些配置,即遵循“约定大于配置”的原子
发表于 2022-07-25 16:59:28
回复(0)
2
java练习生j
首先,当我们调用Springapplication.run()后就会进入Springappplicatiion的构造方法,在这个构造方法中会做这主要的两件事 第一件事是确定当前应用类型(根据类路径判断,比如类路径中存在DispatchServlate,就属于servlate应用 )第二件事是从MATE-INF/spring.factory文件中加载并实例化初始化器和监听器(初始化器用于在spring容器刷新前做扩展),然后调用run()方法,进入方法中,依次会启动计时器,启动各个监听器,然后就会准备环境,比如创建enviroment对象,将配置文件加载到此对象中,确定运行环境等,然后就会根据应用类型开始创建容器,准备容器,准备容器主要做一些刷新容器前的初始化工作,比如自定义提前注入一些bean,将前面的环境对象加入容器,方便后序使用,最后刷新容器,扫描注解,将有注解标注的类注册为bean,自动配置bean注入
发表于 2025-09-17 11:00:24
回复(0)
2
牛客581781960号
怎么感觉评论区答非所问
发表于 2025-08-10 16:23:59
回复(1)
2
monsterSong
真要问吗?
发表于 2025-08-07 01:35:27
回复(0)
2
moon_caral
首先调用run方法,然后run方***创建SpringApplication对象,这时会加载一些初始化器和监听器以及设置好启动模式(是否用web),并且记录启动类和main所在的主启动类 然后调用SpringApplication的run方法,这个里面会按以下几步进行: 创建监听器(这个监听器只会监听当前程序启动的状态),创建IOC容器,容器初始化(这个过程会加载环境,初始化,加载参数,加载初始化时记录的启动类),容器初始化(Bean创建,依赖注入,环境设置,参数配置),IOC容器refresh(这里默认为空),执行Runner启动后逻辑
发表于 2025-07-21 20:23:14
回复(0)
2
ganlanA
SpringBoot首先就是一个约定大于配置。那么在Starter中整合了各种企业场景下或许会用到的依赖。而用户只要在Maven中引入Starter依赖。SpringBoot就能自动扫描到要加载的信息并且启动默认配置、 举个例子: <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-web</artifactid> </dependency> 这个starter-web就表示是关于Web开发的依赖。 开发只要在Maven里导入Starter-web。免去了导入Web服务器和其他一系列相关依赖的麻烦。 在这里并不需要指明version.是因为版本信息都由Spring-boot-starter-parent统一控制了。
发表于 2022-08-10 20:05:13
回复(0)
1
YarenZhu
1、入口触发 2、环境准备 3、上下文创建 4、自动配置 5、容器刷新 6、引用就绪
发表于 2025-07-20 16:53:25
回复(0)
1
小海牛的成长之路
1.扫描所有jar包中META-INF/spring.factories,以Key value的形式放在一个map中 ---> 2.会有一个@import注解导入了视线defferedImportSelector在我们解析完配置类的时候执行process方法 ---> 3.加载所有的key是org.soringframework...EnableAutoConfiguration的自动装配类 ----> 4.去重,排除,过滤(onClassCondition onWepApplicationCondition onBeanCondition)去匹配对应的meta信息 ---> 5.最终交给spring去加载
发表于 2025-06-11 00:09:00
回复(0)
1
getit_
starter配置,约定大于配置, springboot 将日常企业在应用研发中各种场景都抽取出来,做成一个个starter (启动器), starter中整合了该场景下各种可能用到的依赖,用户只需要在Maven中引入starter依赖,springboot 就能自动扫描到要加载的信息并开启响应的默认配置
发表于 2024-09-22 13:44:41
回复(0)
1
牛客953697057号
starter,是某个框架的运行环境和工具类的集合,导入后直接使用就可以了
发表于 2023-02-28 20:11:27
回复(0)
0
Kiki_win
starter配置,约定大于配置 spring boot将企业应用开发中经常使用的场景都抽取出来,作为一个一个的starter(启动器),starter里面整合了该场景下可能用到的依赖,用户只需要在Maven中引入starter依赖,springboot就能自动扫描到要加载的信息,并启动响应的默认配置。 starter 提供了大量的自动配置,让用户摆脱了处理各种依赖和配置的困扰。所有这些 starter 都遵循着约定成俗的默认配置,并允许用户调整这些配置,即遵循“约定大于配置”的原则。
发表于 2025-10-28 15:36:13
回复(0)
0
千斤拨四两丶
面试官咱换个问题吧?
发表于 2025-10-26 13:40:17
回复(0)
0
牛客81296184号
入口触发:通过 @SpringBootApplication 主类的 main 方法调用 SpringApplication.run()。 环境准备:加载配置、激活 Profile,确定应用运行环境。 上下文创建:根据应用类型(Web/非 Web)实例化对应的 ApplicationContext。 自动配置:通过 @EnableAutoConfiguration 加载并过滤自动配置类,注册必要 Bean。 容器刷新:完成 Bean 的注册、实例化和依赖注入,启动内置 Web 服务器(若为 Web 应用)。 应用就绪:触发事件通知,执行启动后逻辑(如 CommandLineRunner),最终对外提供服务。
发表于 2025-10-20 15:47:14
回复(0)
0
梦到啥说啥
其实就是spring的启动流程
1. 执行run方法
2. 创建容器 AnnotationConfigServletWebServerApplicationContext(servelet环境下)
3.创建环境(yml、环境变量)-> 塞到容器中
4.刷新上下文(加载beandefiniation(自定义bean + 自动装配)、遍历map创建bean,放到容器中)
5.创建tomcat -> 塞到容器中
6.执行一些扩展点(commandlinerunner)进行自定义初始化
编辑于 2025-09-25 14:54:09
回复(0)
0
想吃卤蛋的番石榴
1.springboot将日常企业应用研发的各种场景抽离出来,做成一个个starter(启动器) 2.starter包含该场景下各种可能会用到的依赖,用户只需要在Maven中引入starter依赖,springboot就能自动扫描要加载的信息,并启动相应的默认配置 3.starter提供大量的自动配置,使用户摆脱了处理各种依赖和配置的困扰。所有的这些starter都遵循着约定的配置,并允许用户可以调整配置。即约定大于配置原则
发表于 2025-09-25 13:22:22
回复(0)
0
emo的鸽子被升职
首先初始化springapplication完成应用类型判断、读取初始化器和监听器等操作,然后调用run方法,读取环境变量,加载配置,并且根据应用类型创建对应的springapplication上下文,然后调用refresh加载IOC容器,加载所有自动配置类,完成bean的实例化和依赖注入,触发事件对外扩展
发表于 2025-09-20 14:08:47
回复(0)
0
Saw门徒
执行 main 方法,通过 SpringApplication.run() 启动 初始化 SpringApplication 实例,加载默认配置 执行初始化器(Initializer)和监听器(Listener) 创建并刷新 Spring 容器(ApplicationContext) 触发自动配置(AutoConfiguration),加载相关 Bean 执行 CommandLineRunner/ApplicationRunner 接口的 run 方法 启动完成,应用就绪
发表于 2025-09-12 19:41:24
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
Spring
上传者:
real1993
难度:
60条回答
229收藏
1515浏览
热门推荐
相关试题
说说Spring Boot常用的注解。
Spring
评论
(108)
说说你对Spring Boot的理...
Spring
评论
(58)
在大语言模型中,什么是"Gated...
大模型开发
评论
(1)
关于大模型“上下文窗口”的理解,以...
大模型概念
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题