整体流程

  • 引入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,加上配置类,重写方法