Spring Boot框架提供了很多的默认配置,但是还是有部分配置需要我们自己手动配置。一般情况下,我们的配置都是写在application.properties或application.yml中,那么Spring Boot如何加载配置文件的呢?
这里我们从SpringApplication.run(class, args);开始,这里我们使用的Spring Boot的版本是都2.2.1.RELEASE。进入run方法,首先会初始化一个new SpringApplication(),在构造方法中会初始化一些变量,最重要的是下面这几行代码:
在setInitializers和setListeners中都调用了getSpringFactoriesInstances,该方法从classpath上所有jar包中找出对应的META-INF/spring.factories属性文件,加载其中的初始化器和监听器并实例化。
在SpringFactoriesLoader.loadFactoryNames方法中会调用SpringFactoriesLoader.loadSpringFactories获取spring