@SpringBootApplication
@SpringBootApplication是SpringBoot的核心注解
作用:标识springboot项目启动
是一个组合注解:
@SpringBootConfiguration
1.@SpringBootConfiguration:这是springboot项目配置注解,标志在某个类上,表示这是个springboot的配置类,也是一个组合注解。
@configuration是一个spring注解:作用于类上相当于xml配置文件
@EnableAutoConfiguration
1.@EnableAutoConfiguration:启动自动配置(也就是开启自动配置功能的代表),该注解会根据项目中jar包自动配置项目的配置项。
@AutoConfigurationPackage
@AutoConfigurationPackage:自动配置包,添加该注解的类所在的package作为自动配置包进行管理
**AutoConfigurationPackages.Registrar.class:**这个类的作用是应该扫描哪些路径,哪些包内容
Debug 运行调试
@Import(AutoConfigurationImportSelector.class)
AutoConfigurationImportSelector.class:就是代表自动配置导入选择器,他是将所有需要导入的组件以类名的方式返回,这些组件就会被添加到容器中。组件的选择器给容器中导入非常多的自动配置类(xxxAutoConfiguration)
最底层:
@ComponentScan
@ComponentScan:告诉Spring从哪里找到bean,由自己定义哪些包需要被扫描,默认扫描的是@SpringBootApplication所在类的同级目录以及他的子目录。
小结:
@SpringBootApplication注解等价于
@Configuration、@EnableAutoConfiguration,@ComponenetScan这三个注解
@Configuration:就相当于xml搭建Spring服务时de,而经常与他配合使用的是@Bean注解
@EnableAutoConfiguration:会根据你引入的依赖才想需要的配置,然后就会自动去配置
@ComponenetScan:定义需要扫描的路径,然后把路径下配置@component(@Controller,@Service)的放到spring容器里,也可以供其他类进行引用。