关于java:5定制化原理

28次阅读

共计 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)

正文完
 0