定制化原理

定制化的常见方式

● 修改配置文件;
● 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 里面的配置要能生效 必须 @ConditionalOnMissingBean(WebMvcConfigurationSupport.class)
○ 5、@EnableWebMvc 导致了 WebMvcAutoConfiguration 没有生效。
● … …

原理分析套路

场景starter - xxxxAutoConfiguration - 导入xxx组件 - 绑定xxxProperties – 绑定配置文件项

[SpringBoot2]定制化原理_SpringBoot定制化组件的几种方式相关推荐

  1. vue 实例化几种方式_vue注册组件的几种方式总结

    vue注册组件的几种方式总结 1.全局注册(这种方式注册组件必须在vue实例化之前声明) Vue.component('tag-name',{}) 2.局部注册 var Child = { templ ...

  2. java jframe添加面板_JFrame添加组件的两种方式

    对JFrame添加组件有两种方式:1) 用getContentPane()方法获得JFrame的内容面板,再对其加入组件:frame.getContentPane().add(childCompont ...

  3. 深入解析React创建组件的三种方式

    eact创建组件的三种方式: 1.函数式无状态组件 2.es5方式React.createClass组件 3.es6方式extends React.Component 三种创建方式的异同 1.函数式无 ...

  4. vue自定义组件是.vue还是html,Vue自定义组件的四种方式示例详解

    四种组件定义方式都存在以下共性(血泪史) 规则: 1.组件只能有一个根标签 2.记住两个词全局和局部 3.组件名称命名中'-小写字母'相当于大写英文字母(hello-com 相当于 helloCom) ...

  5. vue 在线编辑excel表格(原生和使用组件的两种方式)

    vue 在线编辑excel表格(原生和使用组件的两种方式) top表头和left表头格式的表格 <template><div><!-- 用组件写的编辑表格 -->& ...

  6. Unity3D获取游戏对象组件的三种方式

    Unity获取游戏对象组件的三种方式 用Find查询 1. GameObejct go = GameObject.Find("对象名").GetComponent<获取对象上 ...

  7. vue.js 动态加载 html,Vue加载组件、动态加载组件的几种方式

    什么是组件: 组件是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码.在较高层面上,组件是自定义的元素,Vue.js的编译器为它添加特殊功能.在有些情况下,组件也可以是原生HT ...

  8. Vue动态加载组件的四种方式

    动态加载组件的四种方式: 1.使用import导入组件,可以获取到组件 var name = 'system'; var myComponent =() => import('../compon ...

  9. Vue渲染组件的两种方式

    <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...

最新文章

  1. NHibernate: Session.Save 采用版本控制时无必要地自动Update版本字段的问题
  2. (2.4)备份与还原--WAL与备份原理
  3. server2003 IIS 错误 解决
  4. WebBrowser部分用法
  5. JAVA:json解析
  6. c++ 开发虚拟摄像头_开发板有了,但我们要怎么玩?
  7. 锦城学院计算机系考研,奋斗的青春, 滚烫的人生—— —我的考研路
  8. C语言经典算法100例-021-猴子吃桃问题
  9. 网线连接电脑共享文件传递
  10. metasploit下载教程linux,Metasploit 3.6安装与配置之Linux篇
  11. 微信红包系统设计 优化
  12. 【精读AI论文】inceptionV2 BN-inception Batch Normalization BN 批量标准化
  13. 【unity】编辑模式预览Animator动作,2种实现。 其中一种 playback模式是Cinema Director用的会使Unity Crash
  14. 最新matlab音乐合成实验报告,Matlab音乐合成实验报告
  15. POJ 【1088】 滑雪
  16. 女朋友过生日送什么礼物好?
  17. 我的世界服务器兑换系统怎么做,Minecraft我的世界村民交易方法及兑换表格
  18. 在树莓派中安装MCSM面板
  19. 任意文件下载(读取)
  20. 地热能类毕业论文文献有哪些?

热门文章

  1. C语言循环为1404的循环,考试,求大神帮忙,C语言,小弟感激不尽
  2. js 通过jquery插件获取url参数 其中的一个小问题,或许不算Bug。
  3. 利用浏览器调试功能 计算 百度网盘 文件数量
  4. Windows 7旗舰版安装Visual Studio 2013 Ultimate的系统必备及注意事项
  5. Android(kotlin)之对一组图片数据更新最后的修改时间进行分类显示
  6. node.js之npm
  7. Android之使用PopupWindow让背景变黯但是华为手机出现屏幕一闪一闪问题解决办法
  8. MultiProcessing中主进程与子进程之间通过管道(Pipe)通信
  9. 吃屎是一种什么样的体验?
  10. 正方形与圆的爱恨纠缠...