1.springboot启动类有注解 springbootapplication 相当于EnableAutoConfiguration:进行自动装配、SpringBootConfiguration: 被标注的类等于在spring的XML配置文件中(applicationContext.xml),装配所有bean事务,提供了一个spring的上下文环境、ComponentScan:扫描bean范围 装载入ioc容器中;
run方法做的事情:1.创建了应用的监听器SpringApplicationRunListeners并开始监听 2.加载SpringBoot配置环境(ConfigurableEnvironment) 3.自动配置创建上下文对象
自动装配:
该配置模块的主要使用到了SpringFactoriesLoader,即Spring工厂加载器,该对象提供了loadFactoryNames方法,入参为factoryClass和classLoader,即需要传入的工厂类名称和对应的类加载器,方法会根据指定的classLoader,加载该类加器搜索路径下的指定文件,即spring.factories文件,传入的工厂类为接口,而文件中对应的类则是接口的实现类,或最终作为实现类,所以文件中一般为如下图这种一对多的类名集合,获取到这些实现类的类名后,loadFactoryNames方法返回类名集合,方法调用方得到这些集合后,再通过反射获取这些类的类对象、构造方法,最终生成实例