我们都知道@SpringBootApplication是写在springboot的主启动类上表明这是一个主启动类,但是,你真的有深入了解过这个注解吗?现在,我带领大家通过这个注解来了解一下这个注解,我们也就会知道springboot在启动时到底帮我们做了哪些事。
按住ctrl进入@SpringBootApplication注解的里面,可以知道@SpringBootApplication这个注解功能相当于下面三个注解的加起来@SpringBootConfiguration @EnableAutoConfiguration @ComponentScan("扫描包的位置,默认主启动类位置"),这三个是@SpringBootApplication的核心。下面我们围绕这三个注解来了解springboot的自动配置
1、@SpringBootConfiguration
按住Ctrl点进来发现这就是一个配置类,说明 public static void main(String[] args){} 也是一个配置类,只不过是以一个核心配置类。
2、@ComponentScan
指定扫描的包组件,默认是主启动类的位置,也可以在后面("")指定特定位置
3、@EnableAutoConfiguration(最重要)
按住Ctrl点进来可以看到,这也是一个核心注解
@AutoConfigurationPackage
@Import({AutoConfigurationImportSelector.class})
1、AutoConfigurationPackage
翻译过来就是自动配置包,按住ctrl点进来发现他就是一个@Import ,@Import 的作用:给容器中导入组件,导入的组件就是Registrar
点进Registrar,我们发现,这是批量给容器中批量导入组件