(七)SpringBoot启动配置原理

几个重要的事件回调机制

ApplicationContextInitializer

SpringApplicationRunListener

ApplicationRunner

CommandLineRunner

启动流程

1.创建SpringApplication对象

 1 initialize(sources);
 2 private void initialize(Object[] sources) {
 3         //保存主配置类
 4         if (sources != null && sources.length > 0) {
 5         this.sources.addAll(Arrays.asList(sources));
 6     }
 7     //判断当前是否是一个web应用
 8     this.webEnvironment = deduceWebEnvironment();
 9     //从类路径下META-INF/spring.factories配置的所有ApplicationContextInitializer;然后保存起来
10     setInitializers((Collection)          getSpringFactoriesInstances(ApplicationContextInitializer.class));
11     //从类路径下找到META-INF/spring.factories配置的所有ApplicationListener;
12     setListeners((Collection)     getSpringFactoriesInstances(ApplicationListener.class));
13     //从多个配置类中找到那个有main方法的主配置类
14     this.mainApplicationClass = deduceMainApplicationClass();
15 }

2.运行run方法

原文地址:https://www.cnblogs.com/yang-young-young/p/9498992.html

时间: 2024-08-30 11:50:08

(七)SpringBoot启动配置原理的相关文章

springboot启动配置原理之二(运行run方法)

public ConfigurableApplicationContext run(String... args) { StopWatch stopWatch = new StopWatch(); stopWatch.start(); ConfigurableApplicationContext context = null; FailureAnalyzers analyzers = null; configureHeadlessProperty(); //获取SpringApplication

SpringBoot启动过程原理

最近这两年springboot突然火起来了,那么我们就来看看springboot的运行原理. 一.springboot的三种启动方式: 1.运行带有main方法的2.通过命令 Java -jar命令3.通过spring-boot-plugin的方式 二.springboot 启动时执行方法,有两种方式 第一种方式是用启动时的main方法加载静态方法. 另一种是用初始化注解@postconstruct 执行.(注意点必须void并且参数). 注意点:[1.@PostConstruct会先被执行,静

SpringBoot1.x之启动配置原理及自定义starter

1 启动配置原理 1.1 创建SpringApplication对象 @SuppressWarnings({ "unchecked", "rawtypes" }) private void initialize(Object[] sources) { //保存主配置类 if (sources != null && sources.length > 0) { this.sources.addAll(Arrays.asList(sources));

SpringBoot自动配置原理

SpringBoot自动配置主要通过@EnableAutoConfiguration, @Conditional, @EnableConfigurationProperties或者@ConfigurationProperties 等几个注解来进行自动配置完成的. @EnableAutoConfiguration开启自动配置,主要作用就是调用Spring-Core包里的loadFactoryNames(),将autoconfig 包里的已经写好的自动配置加载进来. @Conditional条件注解

SpringBoot源码分析----(二)SpringBoot自动配置原理

自动配置原理 1.SpringBoot启动的时候加载主配置类,开启了自动配置功能  @EnableAutoConfiguration [email protected] 功能的作用 @AutoConfigurationPackage @Import({AutoConfigurationImportSelector.class}) public @interface EnableAutoConfiguration { 利用  AutoConfigurationImportSelector  给容器

springBoot 自动配置原理

在之前文章中说过,springBoot会根据jar包去添加许多的自动配置,本文就来说说为什么会自动配置,自动配置的原理时什么? springBoot在运行SpringApplication对象实例化时,就会去加载 META-INF/spring.factories文件,就会将这个文件中的配置都加载到spring容器中.下面,我们去看看SpringApplication对象的初始化方法 initialize() 方法. 因为我们在项目启动时有用到这个对象,所以,我们可以直接从这里进入. 找到 in

Spring boot 启动配置原理

配置在META-INF/spring.factories 有几个主要的类 ApplicationContextInitializer    创建SpringAplication SpringApplicationRunListener 启动的run流程 ApplicationRunner CommandLineRunner 1:创建SpringApplication对象 initialize(sources); private void initialize(Object[] sources)

我是如何做到springboot自动配置原理解析

摘自:https://www.cnblogs.com/zszxz/p/12195703.html 一前言 springboot 2.0.0版本分析,整体的自动配置流程如下: 具体配置参考官方文档:springboot-doc 二 @SpringBootApplication 核心注解@SpringBootConfiguration其实就是@Configuration注解,表示是个配置类:@EnableAutoConfiguration表示springboot的自动配置机制:@ComponentS

助力SpringBoot自动配置的条件注解ConditionalOnXXX分析--SpringBoo

注:该源码分析对应SpringBoot版本为2.1.0.RELEASE 1 前言 本篇接如何分析SpringBoot源码模块及结构?--SpringBoot源码(二) 上一篇分析了SpringBoot源码结构及各个模块pom之间的关系后,那么此篇开始就开始解开SpringBoot新特性之一--自动配置的神秘面纱了.因为SpringBoot自动配置原理是基于其大量的条件注解ConditionalOnXXX,因此,本节我们先来撸下Spring的条件注解的相关源码. 2 SpringBoot的派生条件