共计 1170 个字符,预计需要花费 3 分钟才能阅读完成。
1、定制化的常见形式
- 批改配置文件;
- xxxxxCustomizer;
- 编写自定义的配置类 xxxConfiguration;+ @Bean 替换、减少容器中默认组件;视图解析器
-
Web 利用 编写一个配置类实现 ** **WebMvcConfigurer 即可定制化 web 性能;+ @Bean 给容器中再扩大一些组件
(次要)@Configuration public class AdminWebConfig implements WebMvcConfigurer
- @EnableWebMvc + WebMvcConfigurer —— @Bean 能够全面接管 SpringMVC,所有规定全副本人重新配置;实现定制和扩大性能
-
- 原理
- 1、WebMvcAutoConfiguration:默认的 SpringMVC 的主动配置性能类。动态资源、欢送页等等一堆的配置
- 2、一旦应用 @EnableWebMvc,会 @Import(DelegatingWebMvcConfiguration.class)
- 3、DelegatingWebMvcConfiguration 的 作用,只保障 SpringMVC 最根本的应用
-
-
- 把所有零碎中的 WebMvcConfigurer 拿过去。所有性能的定制都是这些 WebMvcConfigurer 合起来一起失效
- 主动配置了一些十分底层的组件。比方RequestMappingHandlerMapping,这些组件依赖的组件都是从容器中获取
- public class DelegatingWebMvcConfiguration extends WebMvcConfigurationSupport
-
-
- 4、WebMvcAutoConfiguration 外面的配置要能失效,容器中必须没有 WebMvcConfigurationSupport 这个类 @ConditionalOnMissingBean(WebMvcConfigurationSupport.class)
- 5、@EnableWebMvc 导致了 WebMvcAutoConfiguration 没有失效。(@EnableWebMvc 会给容器中导入 DelegatingWebMvcConfiguration,相当于导入了 WebMvcConfigurationSupport)
2、原理剖析套路
导入 场景启动器 starter
—> 场景启动器导入一系列的主动配置 xxxxAutoConfiguration—>
这些主动配置外面通过 @Bean 给容器中 导入 xxx 组件 —> 组件的默认属性 绑定 xxxProperties—> 这些 Properties 绑定配置文件项
如果当前想扩大 SpringMvc:写一个实现了 WebMvcConfigurer 的配置类 即可定制化 web 性能 + @Bean 给容器中再扩大一些组件
或者
导入场景启动器 starter,而后批改配置文件(yaml)
正文完