@SpringBootApplication注解的主要作用就是标识一个类作为SpringBoot应用的主配置类,并开启自动配置和包扫描功能,以简化SpringBoot应用的配置和启动过程。在开发过程中,通常在主类上添加这个注解,并通过运行主类中的main()方法来启动Spring Boot应用
具体来说:
@SpringBootApplication注解包含了以下三个子注解:
1. @SpringBootConfiguration:这个注解表明当前类是一个SpringBoot的配置类,也就是一个Spring容器中的组件。
它实际上包含了@Configuration注解,而@Configuration注解又包含了@Component注解,
因此,被@SpringBootConfiguration注解标注的类同时也是一个Spring组件。
2. @EnableAutoConfiguration:这个注解用于开启自动配置功能。它内部包含了两个重要的注解:
@AutoConfigurationPackage和@Import(AutoConfigurationImportSelector.class):
-- @AutoConfigurationPackage注解会自动扫描@SpringBootApplication注解所在类所在的包,
并将该包及其子包下的所有组件加载到Spring的容器中。
-- @Import(AutoConfigurationImportSelector.class)则通过一系列的操作,
从META-INF/spring.factories文件中找到所有的对应配置类,并将这些自动配置类加载到Spring容器中。
3. @ComponentScan:这个注解用于包扫描,也就是根据定义的扫描路径,把符合扫描规则的类装配到Spring容器中。