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

相关文章
|
6月前
|
存储 Java 测试技术
《Spring 测试指南》:JPA、MockMvc 和 @SpringBootTest 详解
Spring 提供了一组测试工具,可以轻松地测试 Spring 应用程序的各个组件,包括控制器、服务、存储库和其他组件。它具有丰富的测试注释、实用程序类和其他功能,以帮助进行单元测试、集成测试等。
107 0
|
6月前
|
Java Spring 容器
[Spring 源码] 浅析 SpringApplication#run()
[Spring 源码] 浅析 SpringApplication#run()
|
6月前
|
Java Spring 容器
SpringAop
SpringAop
53 0
|
11月前
|
JSON Java 测试技术
MockMvc
MockMvc
49 0
|
Java
SpringApplication#run()getRunListeners()
SpringApplication#run()getRunListeners()
66 0
|
Java 数据库连接 数据库
SpringAOP(三)
SpringAOP(三)
|
数据安全/隐私保护
SpringAOP(二)
SpringAOP(二)
|
XML 缓存 Java
SpringBoot2.x基础篇:使用CommandLineRunner或ApplicationRunner
如果你想要使用`SpringBoot`构建的项目在启动后运行一些特定的代码,那么`CommandLineRunner`、`ApplicationRunner`都是很好的选择。
|
XML 缓存 Java
Spring - @PostConstruct & @PreDestroy
Spring - @PostConstruct & @PreDestroy
191 0
Spring - @PostConstruct & @PreDestroy