SpringBoot自动装配主要是基于注解编程和约定大于配置的思想来进行设计的。
它能自动地将其他组件中的Bean装载到IOC容器中,而不需要开发人员再去配置文件中添加大量的配置。
在具体实现上,SpringBoot启动时会依赖@Configuration的配置类,该类中会声明为Bean注解,然后将方法的返回值或者是属性注入到IOC容器中。
对于第三方jar包,SpringBoot会采用SPI机制,在/META-INF/目录下增加spring.factories文件,然后SpringBoot会自动根据约定,自动使用SpringFactoriesLoader来加载配置文件中的内容。
最后,Spring获取到第三方jar中的配置以后会调用ImportSelector接口来完成动态加载。
这样的设计大幅度减少了臃肿的配置文件,同时各模块之间的依赖也深度解耦。