整体流程
- 引入starter
- springboot扫描到自动配置类
- 导入组件,绑定配置文件
- 用的时候,走流程的时候,就用到了组件
具体事例
```java @ConditionalOnMissingBean(WebMvcConfigurationSupport.class) public class WebMvcAutoConfiguration {}
@Import(DelegatingWebMvcConfiguration.class) public @interface EnableWebMvc {}
@Configuration(proxyBeanMethods = false)
public class DelegatingWebMvcConfiguration extends WebMvcConfigurationSupport {}
```
导入了@EnableWebMvc 引入组件DelegatingWebMvcConfiguration(是Support的实现类)
导致WebMvcAutoConfiguration的条件不符,整个配置类失效
几种套路
- 修改配置文件
- xxxxxCustomizer
- 替换、增加容器中默认组件(大组件,中组件,小组件)
- 编写自定义的配置类 xxxConfiguration;+ @Bean
- @Component
- spring中注册组件的其他方式
- 常用就是集成WebMvcConfigurer,加上配置类,重写方法