SpringBoot项目中都有一个如下的启动类。
@SpringBootApplication
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class,args);
    }
}
 
其中@SpringBootApplication是这个启动类的核心注解,在它下面又有三个子注解如下:
- @SpringBootConfiguration:配置当前启动类为Bean
 - @EnableAutoConfiguration:自动扫描所有启动器依赖中的配置类。
 - @ComponentScan:自动扫描启动类所在的包及其子包下使用了@Bean注解的类及其方法。
 
其中@EnableAutoConfiguration这个注解也是比较核心的。
- @EnableAutoConfiguration 借助自己的一个子注解@Import 的帮助,将所有符合自动配置条件的 bean 定义加载到 IoC 容器。
 
而main中SpringApplication.run()的作用主要有两个
- 创建SpringApplication对象:进行相关资源的加载,解析@SpringBootApplication注解。
 - 调用的是创建的SpringApplication对象的run方法,然后使用资源并启动Tomcat。
 
下面介绍一下SpringBoot启动的全过程(部分),如下图所示。

看源码如下:
 
 




之后run方法会遍历这个List集合中的类路径信息。并反射调用类对象,完成Bean的配置。

然后就会用到我们的yml文件了

稀里糊涂的写完了。。。。。。



















