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

相关文章
|
2月前
|
XML Java 测试技术
什么是 JavaConfig?
什么是 JavaConfig?
93 7
|
8月前
|
Java Spring 容器
[Spring 源码] 浅析 SpringApplication#run()
[Spring 源码] 浅析 SpringApplication#run()
|
8月前
|
Java Spring
[Spring源码] 浅析 SpringApplication`的构造方法
[Spring源码] 浅析 SpringApplication`的构造方法
|
Java Spring
|
Java
SpringApplication#run()getRunListeners()
SpringApplication#run()getRunListeners()
71 0
|
XML Java 数据格式
JavaConfig与常见Annotation(必知必会系列)
上一篇我们介绍了 Spring中Bean的生命周期,这一篇我们接着学习在Spring Boot中的一些常用注解。
184 0
JavaConfig与常见Annotation(必知必会系列)
|
缓存 Java Spring
ApplicationContext(1)--Spring源码解析(一)
ApplicationContext(1)--Spring源码解析(一)
ApplicationContext(1)--Spring源码解析(一)
|
Java 开发者 Spring
@PropertySource、@ImportResource、@Bean | 学习笔记
快速学习@PropertySource、@ImportResource、@Bean
|
XML 缓存 Java
|
XML 缓存 Java
Spring - @PostConstruct & @PreDestroy
Spring - @PostConstruct & @PreDestroy
204 0
Spring - @PostConstruct & @PreDestroy