当前位置:首页 > 机动车 >

springboot启动过程图解(SpringBoot启动流程)

来源:原点资讯(www.yd166.com)时间:2023-11-09 18:32:06作者:YD166手机阅读>>

springboot启动过程中会用到事件发布机制。这里先事件发布说明一下。

Spring中的事件发布机制。网上有一篇文章介绍得很详细,可以参考:https://www.cnblogs.com/takumicx/p/9972461.html

但是在SpringBoot中用的是事件驱动机制,和Spring中的机制有一些区别。

springboot启动过程图解,SpringBoot启动流程(1)

先来从图上整体看下springboot的启动流程。

springboot启动过程图解,SpringBoot启动流程(2)

springboot的监听机制加载执行过程如下:

1:在SpringApplication.run方法中两步:

// 加载监听器 SpringApplicationRunListeners listeners = this.getRunListeners(args); // 执行 listeners.starting(bootstrapContext, this.mainApplicationClass);

SpringApplicationRunListeners listeners = this.getRunListeners(args);

private SpringApplicationRunListeners getRunListeners(String[] args) { Class<?>[] types = new Class[]{SpringApplication.class, String[].class}; // 从spring.factories中加载key为 SpringApplicationRunListener.class对应的value值 并封装成返回的这个类实例 注意这个spring.factoies是在spring-boot.jar里面的 return new SpringApplicationRunListeners(logger, this.getSpringFactoriesInstances(SpringApplicationRunListener.class, types, this, args), this.applicationStartup); }

springboot启动过程图解,SpringBoot启动流程(3)

加载的就一个 EventPublishingRunListener。

this.getSpringFactoriesInstances(SpringApplicationRunListener.class, types, this, args) 这个方法不仅会加载spring.factories中的类,还会进行实例化。而EventPublishingRunListener 只有一个构造器。

public EventPublishingRunListener(SpringApplication application, String[] args) { this.application = application; this.args = args; // 直接new了一个事件发布器 this.initialMulticaster = new SimpleApplicationEventMulticaster(); // 这里取的就是 上面spring.factories中加载出来的ApplicationListener 监听器 Iterator var3 = application.getListeners().iterator(); while(var3.hasNext()) { ApplicationListener<?> listener = (ApplicationListener)var3.next(); / /添加事件发布器中 方法是在AbstractApplicationEventMulticaster中 会先排除代理类再进行添加 this.initialMulticaster.addApplicationListener(listener); } }

springboot启动过程图解,SpringBoot启动流程(4)

首页 1234下一页

栏目热文

springboot优缺点(springboot可以开发安卓吗)

springboot优缺点(springboot可以开发安卓吗)

SpringBoot核心功能2.1、独立运行Spring项目Spring boot 可以以jar包形式独立运行,运行一个...

2023-11-09 19:10:21查看全文 >>

springboot项目实战视频(spring项目实例)

springboot项目实战视频(spring项目实例)

Spring Boot 3是一个非常令人期待的版本,将进一步扩大Spring Boot框架在应用程序开发领域的影响力,并...

2023-11-09 18:58:14查看全文 >>

springboot全局异常处理(spring boot异常处理流程)

springboot全局异常处理(spring boot异常处理流程)

Spring Boot提供了一种简单且灵活的方式来处理应用程序中的异常,即全局异常处理。全局异常处理允许我们定义一个统一...

2023-11-09 18:37:04查看全文 >>

springboot启动过程(springboot是什么)

springboot启动过程(springboot是什么)

现在Java的项目开发中,几乎都会引入Spring框架,甚至有人说java开发现在就是在面向Spring编程。基于Spr...

2023-11-09 19:11:51查看全文 >>

springboot的四大核心(springboot的启动流程)

springboot的四大核心(springboot的启动流程)

前言先透露一下,四大组件分别是:starter, autoconfigure, CLI 以及actuator。下面我们就...

2023-11-09 18:43:50查看全文 >>

springboot图解(springboot视频播放接口)

springboot图解(springboot视频播放接口)

万物皆可Hello World在一个程序员的眼里,万物皆可Hello World。Spring Boot当然也不例外。下...

2023-11-09 18:54:04查看全文 >>

springboot多数据源(springboot 自动添加数据)

springboot多数据源(springboot 自动添加数据)

通过springboot druid mybatisplus使用注解整合第一步:引入相关的依赖jar,如下:<de...

2023-11-09 18:44:46查看全文 >>

springboot是前端还是后端(springboot最底层是什么)

springboot是前端还是后端(springboot最底层是什么)

摘要:spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开...

2023-11-09 19:09:05查看全文 >>

springboot快速入门(spring boot框架介绍)

springboot快速入门(spring boot框架介绍)

什么是 Spring Boot ?解释一下:Spring Boot 可以构建一切。Spring Boot 设计之初就是为...

2023-11-09 18:39:30查看全文 >>

springboot三大原理(springboot 原理是啥)

springboot三大原理(springboot 原理是啥)

前言springBoot是Spring的包装,通过自动配置使得SpringBoot可以做到开箱即用,上手成本非常低,但是...

2023-11-09 19:15:42查看全文 >>

文档排行