Springboot—学习过程—Springboot探索主启动类怎么运行
1. 直接开启了一个服务;
// 程序的主入口
@SpringBootApplication
public class HelloWorldApplication {
public static void main(String[] args) {
// 两个参数,一个是应用入口的类,另一个是命令参数
SpringApplication.run(HelloWorldApplication.class, args);
}
}
2. 启动类SpringApplication
做了哪些事情
- 推断应用的类型是普通的项目还是Web项目
- 查找并加载所有可用初始化器 , 设置到initializers属性中
- 找出所有的应用程序监听器,设置到listeners属性中
- 推断并设置main方法的定义类,找到运行的主类
3.启动类中的run方法
- 点击启动类中的run方法会进入
public static ConfigurableApplicationContext run(Class<?> primarySource, String... args) { return run(new Class[]{primarySource}, args); }
- 点击上面方法的return后面的run
public static ConfigurableApplicationContext run(Class<?>[] primarySources, String[] args) { return (new SpringApplication(primarySources)).run(args); }
4.查看构造器SpringApplication
- 构造器
SpringApplication
public SpringApplication(ResourceLoader resourceLoader, Class... primarySources) { // ...... this.webApplicationType = WebApplicationType.deduceFromClasspath(); this.setInitializers(this.getSpringFactoriesInstances(); this.setListeners(this.getSpringFactoriesInstances(ApplicationListener.class)); this.mainApplicationClass = this.deduceMainApplicationClass(); }
图解: