@SpringBootApplication注解的作用是, 标明这是一个springboot应用
springboot应用, 这里划分为事件触发器, http触发器, 往往使用于controller层
这个注解是一个组合注解, 包含了几个其他的注解, 其中重要的是
- @SpringBootConfiguration –> spring的配置
- @Configuration –> spring的配置类
- @Component –> spring的组件
- @EnableAutoConfiguration –> 自动配置
- @AutoConfigurationPackage –> 自动配置包
- @Import({AutoConfigurationImportSelector.class}) –>导入选择
- @ComponentScan –> 扫描
此外, 还有很多注解, 层层嵌套…
结论: springboot所有自动配置都是在启动时扫描并加载, spring.factories所有的自动配置类都包含在这里面, 但不一定生效, 条件是是否导入了对应的start