Springboot30StartupApplication【10】->SpringApplication.run(Springboot30StartupApplication.class, args);
SpringApplication【1332】->return run(new Class<?>[] { primarySource }, args);
SpringApplication【1343】->return new SpringApplication(primarySources).run(args);
SpringApplication【1343】->SpringApplication(primarySources)
# 加载各种配置信息,初始化各种配置对象
SpringApplication【266】->this(null, primarySources);
SpringApplication【280】->public SpringApplication(ResourceLoader resourceLoader, Class<?>... primarySources)
SpringApplication【281】->this.resourceLoader = resourceLoader;
# 初始化资源加载器
SpringApplication【283】->this.primarySources = new LinkedHashSet<>(Arrays.asList(primarySources));
# 初始化配置类的类名信息(格式转换)
SpringApplication【284】->this.webApplicationType = WebApplicationType.deduceFromClasspath();
# 确认当前容器加载的类型
SpringApplication【285】->this.bootstrapRegistryInitializers = getBootstrapRegistryInitializersFromSpringFactories();
# 获取系统配置引导信息
SpringApplication【286】->setInitializers((Collection) getSpringFactoriesInstances(ApplicationContextInitializer.class));
# 获取ApplicationContextInitializer.class对应的实例
SpringApplication【287】->setListeners((Collection) getSpringFactoriesInstances(ApplicationListener.class));
# 初始化监听器,对初始化过程及运行过程进行干预
SpringApplication【288】->this.mainApplicationClass = deduceMainApplicationClass();
# 初始化了引导类类名信息,备用
SpringApplication【1343】->new SpringApplication(primarySources).run(args)
# 初始化容器,得到ApplicationContext对象
SpringApplication【323】->StopWatch stopWatch = new StopWatch();
# 设置计时器
SpringApplication【324】->stopWatch.start();
# 计时开始
SpringApplication【325】->DefaultBootstrapContext bootstrapContext = createBootstrapContext();
# 系统引导信息对应的上下文对象
SpringApplication【327】->configureHeadlessProperty();
# 模拟输入输出信号,避免出现因缺少外设导致的信号传输失败,进而引发错误(模拟显示器,键盘,鼠标...)
java.awt.headless=true
SpringApplication【328】->SpringApplicationRunListeners listeners = getRunListeners(args);
# 获取当前注册的所有监听器
SpringApplication【329】->listeners.starting(bootstrapContext, this.mainApplicationClass);
# 监听器执行了对应的操作步骤
SpringApplication【331】->ApplicationArguments applicationArguments = new DefaultApplicationArguments(args);
# 获取参数
SpringApplication【333】->ConfigurableEnvironment environment = prepareEnvironment(listeners, bootstrapContext, applicationArguments);
# 将前期读取的数据加载成了一个环境对象,用来描述信息
SpringApplication【333】->configureIgnoreBeanInfo(environment);
# 做了一个配置,备用
SpringApplication【334】->Banner printedBanner = printBanner(environment);
# 初始化logo
SpringApplication【335】->context = createApplicationContext();
# 创建容器对象,根据前期配置的容器类型进行判定并创建
SpringApplication【363】->context.setApplicationStartup(this.applicationStartup);
# 设置启动模式
SpringApplication【337】->prepareContext(bootstrapContext, context, environment, listeners, applicationArguments, printedBanner);
# 对容器进行设置,参数来源于前期的设定
SpringApplication【338】->refreshContext(context);
# 刷新容器环境
SpringApplication【339】->afterRefresh(context, applicationArguments);
# 刷新完毕后做后处理
SpringApplication【340】->stopWatch.stop();
# 计时结束
SpringApplication【341】->if (this.logStartupInfo) {
# 判定是否记录启动时间的日志
SpringApplication【342】-> new StartupInfoLogger(this.mainApplicationClass).logStarted(getApplicationLog(), stopWatch);
# 创建日志对应的对象,输出日志信息,包含启动时间
SpringApplication【344】->listeners.started(context);
# 监听器执行了对应的操作步骤
SpringApplication【345】->callRunners(context, applicationArguments);
#
SpringApplication【353】->listeners.running(context);
# 监听器执行了对应的操作步骤
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
spring boot源代码,通过源代码可以了解spring boot底层运行机制。 1. 初始化各种属性,加载成对象 读取环境属性(Environment) 系统配置(spring.factories) 参数(Arguments、application.properties) 2. 创建Spring容器对象ApplicationContext,加载各种配置 3. 在容器创建前,通过监听器机制,应对不同阶段加载数据、更新数据的需求 4. 容器初始化过程中追加各种功能,例如统计时间、输出日志等 监听器类型 1. 在应用运行但未进行任何处理时,将发送 ApplicationStartingEvent。 2. 当Environment被使用,且上下文创建之前,将发送 ApplicationEnvironmentPreparedEvent。 3. 在开始刷新之前,bean定义被加载之后发送 ApplicationPreparedEvent。 4. 在上下文刷新之后且所有的应用和命令行运行器被调用之前发送 ApplicationStartedEvent。 5. 在应用程序和命令行运行
资源推荐
资源详情
资源评论
收起资源包目录
spring boot源码 (358个子文件)
index.css 194KB
index.css 194KB
font-awesome.css 41KB
font-awesome.css 41KB
font-awesome.min.css 30KB
font-awesome.min.css 30KB
style.css 11KB
style.css 11KB
fontawesome-webfont.eot 162KB
fontawesome-webfont.eot 162KB
spring.factories 130B
spring.factories 126B
spring.factories 105B
books.html 12KB
books.html 11KB
Springboot18EsApplicationTests.java 5KB
WebTest.java 5KB
BookController.java 3KB
IpCountService.java 2KB
BookDaoTestCase.java 2KB
BookDaoTestCase.java 2KB
BookServiceImpl.java 2KB
CartoonCatAndMouse.java 2KB
SendMailServiceImpl2.java 2KB
BookController.java 2KB
BookController.java 2KB
BookServiceImpl.java 2KB
SMSCodeServiceImpl.java 2KB
Springboot15SqlApplicationTests.java 2KB
BookServiceTest.java 2KB
BookServiceTest.java 2KB
App.java 2KB
BookServiceTestCase.java 1KB
BookServiceImpl.java 1KB
MyDataSource.java 1KB
IpProperties.java 1KB
BookController2.java 1KB
BookServiceImpl2.java 1KB
Springboot13ConfigurationApplication.java 1KB
MessageServiceRocketmqImpl.java 1KB
SMSCodeServiceImpl.java 1KB
BookServiceImpl.java 1KB
MyImportSelector.java 1KB
RabbitConfigDirect.java 1KB
MyPostProcessor.java 1KB
RabbitConfigTopic.java 1KB
Springboot16RedisApplicationTests.java 1KB
Book.java 1KB
Book.java 1KB
Book.java 1KB
XMemcachedConfig.java 1017B
HealthConfig.java 1004B
ServerConfig.java 1002B
SendMailServiceImpl.java 985B
BookController.java 974B
BookController.java 972B
CodeUtils.java 953B
SpringConfig.java 911B
SMSCodeServiceImpl.java 910B
App5.java 909B
PropertiesAndArgsTest.java 904B
MyRegistrar2.java 891B
MyRegistrar.java 890B
SMSCodeController.java 849B
SMSCodeController.java 849B
SMSCodeController.java 849B
SSMPApplication.java 847B
MyListener.java 841B
App33.java 834B
MessageServiceActivemqImpl.java 826B
CodeUtils.java 821B
CodeUtils.java 821B
BookController.java 803B
Springboot17MongodbApplicationTests.java 797B
QuartzConfig.java 794B
BookController.java 753B
DaoTest.java 748B
OrderServiceImpl.java 708B
StringRedisTemplateTest.java 701B
MessageServiceKafkaImpl.java 701B
Springboot0101QuickstartApplication.java 696B
MessageServiceRabbitmqTopicImpl.java 691B
MessageServiceRabbitmqDirectImpl.java 686B
Springboot30StartupApplication.java 683B
App3.java 673B
SpringMvcConfig.java 668B
MyImportSelector.java 662B
MsgServiceImpl.java 657B
OrderController.java 649B
BookController.java 649B
App1.java 640B
App4.java 636B
MessageServiceImpl.java 632B
IpCountInterceptor.java 631B
Springboot04JunitApplicationTests.java 628B
IpAutoConfiguration.java 623B
MPConfig.java 612B
Springboot20JetCacheApplication.java 608B
PayEndpoint.java 606B
MessageController.java 602B
共 358 条
- 1
- 2
- 3
- 4
资源评论
小透明add
- 粉丝: 105
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于C语言的系统服务框架.zip
- (源码)基于Spring MVC和MyBatis的选课管理系统.zip
- (源码)基于ArcEngine的GIS数据处理系统.zip
- (源码)基于JavaFX和MySQL的医院挂号管理系统.zip
- (源码)基于IdentityServer4和Finbuckle.MultiTenant的多租户身份认证系统.zip
- (源码)基于Spring Boot和Vue3+ElementPlus的后台管理系统.zip
- (源码)基于C++和Qt框架的dearoot配置管理系统.zip
- (源码)基于 .NET 和 EasyHook 的虚拟文件系统.zip
- (源码)基于Python的金融文档智能分析系统.zip
- (源码)基于Java的医药管理系统.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功