②. SpringBoot三大核心注解
①. @SpringBootApplication
1>.@SpringBootApplication
我们在启动项目是都需要在一个类上加@SpringBootApplication这个注解,这个注解中其中包括SpringBoot三个核心注解
(1).@SpringBootConfiguration
(2) @EnableAutoConfiguration
(3) @ComponentScan
②. @SpringBootConfiguration
2>. @SpringBootConfiguration
- 在SpringBootConfiguration中有一个注解@Configuration,标注这个注解的类就是一个配置类, @Configuration这个注解用于以JavaConfig的方式来定义配置类,可替换 xml 配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器。这也是SpringBoot中没有XML配置文件的原因,SpringBoot都是通过配置类的方式将Bean注入到SpringIOC的容器中
③. EnableAutoConfiguration
3>. EnableAutoConfiguration
①. EnableAutoConfiguration 中的@Import 在SpringBoot中流程分析:
- ②. @EnableAutoConfiguration注解内部使用@Import({AutoConfigurationImportSelector.class})来加载配置类
- ③. 配置文件位置:META-INF/spring.factories,该配置文件中定义了大量的配置类,当SpringBoot应用启动时,会自动加载这些配置类,初始化Bean
- ④. 并不是所有的Bean都会被初始化,在配置类中使用Condition来加载满足条件的Bean
④. @ComponentScan
4>. @ComponentScan
- 扫描标明了@SpringBootApplication的类或及其子包进行一个扫描