springboot定制化原理
定制化的常见方式
- 修改配置文件
- xxxxxCustomizer
- 编写自定义的配置类 xxxConfiguration(需要标注配置类注解);+ @Bean替换、增加容器中默认组件;视图解析器
- 如果是Web应用,需要编写一个配置类实现 WebMvcConfigurer 即可定制化web功能;+ @Bean给容器中再扩展一些组件,或者直接覆盖原来的组件(Bean)
@Configuration
public class AdminWebConfig implements WebMvcConfigurer
- @EnableWebMvc + WebMvcConfigurer —— @Bean 可以全面接管SpringMVC,所有规则全部自己重新配置; 实现定制和扩展功能
方法五原理:
1.WebMvcAutoConfiguration 默认的SpringMVC的自动配置功能类。静态资源、欢迎页…
2.一旦使用 @EnableWebMvc 就会 @Import(DelegatingWebMvcConfiguration.class)
3.DelegatingWebMvcConfiguration 的 作用,只保证SpringMVC最基本的使用
4.WebMvcAutoConfiguration 里面的配置要能生效 必须 @ConditionalOnMissingBean(WebMvcConfigurationSupport.class)
5.@EnableWebMvc 导致了 WebMvcAutoConfiguration 没有生效。
原理分析套路
导入场景starter - 然后会配置xxxxAutoConfiguration - 从而根据条件导入xxx组件 - 绑定xxxProperties – 绑定配置文件项