理解:
SpringBootApplication底层代码图示:最重要的三个注解
- @SpringBootConfiguration:底层就是@Component组件类
- @EnableAutoConfiguration-->@AutoConfigurationPackage和@Import(AutoConfigurationImportSelector.class)
/**
* Return the class used by {@link SpringFactoriesLoader} to load configuration
* candidates.
* @return the factory class
*/
protected Class<?> getSpringFactoriesLoaderFactoryClass() {
return EnableAutoConfiguration.class;
}
然后去配置类获取
- @ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class), @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
- Springboot启动会加载大量的自动配置类(xxxAutoConfiguration),
- 我们看我们需要的功能是否在springboot默认写好的自动配置类当中。
- 我们再来看这个自动配置类中到底配置了哪些组件;(只要我们要用的组件存在其中,我们就不需要手动配置了)
- 给容器中自动配置类添加组件的时候,会从properties类中获取某些属性。我们只需要在配置文件中指定这些属性的值即可。
xxxAutoConfiguration:自动配置类,给容器中添加组件
xxxProperities:封装配债文件中的相关属性,如果要修改这些属性,就修改对应的配置yml