从spring-boot-maven-plugin的插件说起,这个插件在打包的时候会为我们将依赖的jar包放进对应文件夹中,然后在MENIFEST .MF中指定Launcher作为Main-class启动类,这个Launcher启动类会为我们加载依赖的jar包并调用StartClass中我们的SpringApplication,而SpringApplication的run方法又主要是为我们加载了SpringContext,也就是加载Spring容器
此时就会涉及到自动装配原理,当Spring解析到SpringBootApplication注解时,会发现里面还有EnableAutoConfiguration,这个注解主要是为我们Import进了一个Selector类,这个类就会为我们扫描所有jar包下得spring.factories里面的AutoConfiguration键对应的值,将这些值对应的bean定义都加载进beanDefinitionMap中,从而让spring来管理.