(1)从springboot项目启动的地方说起,springboot的启动了包含了一个核心注解@SpringBootApplication
(2)@SpringBootApplication注解钟又包含了@SpringBootConfiguration、@EnableAutoConfiguration和@ComponentScan这三个注解:
(2.1)SpringBootConfiguration源码中又包含了@Configuration注解,其作用就是声明当前类是一个配置类,Spring会自动扫描到添加了 @Configuration 的类并读取其中的配置信息
(2.2)@EnableAutoConfiguration是springboot通过检测我们引入的依赖来添加对应的启动器,比如redis,session、web、security等启动器,从而完成自动化配置(默认)的过程
(2.3)@ComponentScan是配置组件的扫描指令,类似我们通过xml配置的时候<context:component-scan> 标签的作用,制定需要扫描的包路径,而@ComponentScan注解声明的类就是main函数所在的启动类,因此扫描的包是该类所在包及其子包。因此,一般启动类会放在一个比较前的包目录中