@SpringBootApplication详解
三部分组成
@SpringBootApplication = @SpringBootConfiguration + @EnableAutoConfiguration + @ComponentScan
@SpringBootConfiguration
进入源码可以看到,其内部依然是一个@Configuration注解.可以理解为@SpringBootConfiguration是把当前的这个类作为一个核心配置类,放到容器中
@ComponentScan
指定扫描哪些包的注解
@EnableAutoConfiguration
@AutoConfigurationPackage内部又包含了一个
@Import注解,其作用为利用Registrar给容器中导入一系列组件将指定的一个包下的所有组件导入进来,即启动类所在的包下
- SpringBoot首先加载所有的自动配置类 xxxxAutoConfiguration
- 每个自动,配置类按照条件生效,默认都会绑定配置文件中指定的值,xxxxProperties和配置文件进行了绑定
- 生效的配置类就会给容器装配许多组件
- 只要容器中有这些组件,相当于这些功能就有了
- 定制化配置: 用户可以直接写一个配置类,加上一个@Bean注解来替换底层的组件,也可以通过配置文件,.yml .properties 结尾,去进行配置
即: xxxxAutoCOnfiguration ---- 装配组件 —从xxxxProperties类中获取值 ---- xxxxxProperties从.yml 或者 .properties结尾的配置文件中获取值