SpringApplication

简介: 不简单的方法我最初以为就是运行了一个main方法,没想到却开启了一个服务;

SpringApplication

5.1.不简单的方法

我最初以为就是运行了一个main方法,没想到却开启了一个服务;


@SpringBootApplication
public class SpringbootApplication {
    public static void main(String[] args) {
        SpringApplication.run(SpringbootApplication.class, args);
    }
}

SpringApplication.run分析

分析该方法主要分两部分,一部分是SpringApplication的实例化,二是run方法的执行;

5.2.SpringApplication

这个类主要做了以下四件事情:

1、推断应用的类型是普通的项目还是Web项目

2、查找并加载所有可用初始化器 , 设置到initializers属性中

3、找出所有的应用程序监听器,设置到listeners属性中

4、推断并设置main方法的定义类,找到运行的主类

查看构造器:


public SpringApplication(ResourceLoader resourceLoader, Class... primarySources) {
    // ......
    this.webApplicationType = WebApplicationType.deduceFromClasspath();
    this.setInitializers(this.getSpringFactoriesInstances();
    this.setListeners(this.getSpringFactoriesInstances(ApplicationListener.class));
    this.mainApplicationClass = this.deduceMainApplicationClass();
}

5.1.run方法流程分析

1673576842750.png

相关文章
|
5月前
|
设计模式 存储 Java
【Spring Boot 源码学习】初识 SpringApplication
【4月更文挑战第10天】本篇带大家初步了解 Spring Boot 的启动类 SpringApplication
58 1
【Spring Boot 源码学习】初识 SpringApplication
|
5月前
|
Java Spring 容器
[Spring 源码] 浅析 SpringApplication#run()
[Spring 源码] 浅析 SpringApplication#run()
|
Java
SpringApplication#run()getRunListeners()
SpringApplication#run()getRunListeners()
61 0
|
Java Spring 容器
Spring Context
Spring Context
|
XML 缓存 Java
Spring - @PostConstruct & @PreDestroy
Spring - @PostConstruct & @PreDestroy
178 0
Spring - @PostConstruct & @PreDestroy
|
Java Android开发 容器
springboot的ApplicationRunner和CommandLineRunner
springboot的ApplicationRunner和CommandLineRunner
springboot的ApplicationRunner和CommandLineRunner
|
Java Spring
【SpringBoot 一】SpringApplication启动类的Args详解
【SpringBoot 一】SpringApplication启动类的Args详解
【SpringBoot 一】SpringApplication启动类的Args详解
|
XML Java 应用服务中间件
SpringBoot 启动过程 SpringApplication.run
SpringBoot 启动过程 SpringApplication.run
174 0
|
Java 测试技术 Spring
Spring中ApplicationListener的使用
Spring中ApplicationListener的使用
406 0
|
Java 应用服务中间件 Spring
Spring Boot 2 - 使用CommandLineRunner与ApplicationRunner
本篇文章我们将探讨CommandLineRunner和ApplicationRunner的使用。 在阅读本篇文章之前,你可以新建一个工程,写一些关于本篇内容代码,这样会加深你对本文内容的理解,关于如何快速创建新工程,可以参考我的这篇博客: Spring Boot 2 - 创建新工程 概述 CommandLineRunner和ApplicationRunner是Spring Boot所提供的接口,他们都有一个run()方法。
2767 0