[SpringBoot2]定制化原理_SpringBoot定制化组件的几种方式
定制化原理
定制化的常见方式
● 修改配置文件;
● 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定制化组件的几种方式相关推荐
- vue 实例化几种方式_vue注册组件的几种方式总结
vue注册组件的几种方式总结 1.全局注册(这种方式注册组件必须在vue实例化之前声明) Vue.component('tag-name',{}) 2.局部注册 var Child = { templ ...
- java jframe添加面板_JFrame添加组件的两种方式
对JFrame添加组件有两种方式:1) 用getContentPane()方法获得JFrame的内容面板,再对其加入组件:frame.getContentPane().add(childCompont ...
- 深入解析React创建组件的三种方式
eact创建组件的三种方式: 1.函数式无状态组件 2.es5方式React.createClass组件 3.es6方式extends React.Component 三种创建方式的异同 1.函数式无 ...
- vue自定义组件是.vue还是html,Vue自定义组件的四种方式示例详解
四种组件定义方式都存在以下共性(血泪史) 规则: 1.组件只能有一个根标签 2.记住两个词全局和局部 3.组件名称命名中'-小写字母'相当于大写英文字母(hello-com 相当于 helloCom) ...
- vue 在线编辑excel表格(原生和使用组件的两种方式)
vue 在线编辑excel表格(原生和使用组件的两种方式) top表头和left表头格式的表格 <template><div><!-- 用组件写的编辑表格 -->& ...
- Unity3D获取游戏对象组件的三种方式
Unity获取游戏对象组件的三种方式 用Find查询 1. GameObejct go = GameObject.Find("对象名").GetComponent<获取对象上 ...
- vue.js 动态加载 html,Vue加载组件、动态加载组件的几种方式
什么是组件: 组件是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码.在较高层面上,组件是自定义的元素,Vue.js的编译器为它添加特殊功能.在有些情况下,组件也可以是原生HT ...
- Vue动态加载组件的四种方式
动态加载组件的四种方式: 1.使用import导入组件,可以获取到组件 var name = 'system'; var myComponent =() => import('../compon ...
- Vue渲染组件的两种方式
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8" ...
最新文章
- NHibernate: Session.Save 采用版本控制时无必要地自动Update版本字段的问题
- (2.4)备份与还原--WAL与备份原理
- server2003 IIS 错误 解决
- WebBrowser部分用法
- JAVA:json解析
- c++ 开发虚拟摄像头_开发板有了,但我们要怎么玩?
- 锦城学院计算机系考研,奋斗的青春, 滚烫的人生—— —我的考研路
- C语言经典算法100例-021-猴子吃桃问题
- 网线连接电脑共享文件传递
- metasploit下载教程linux,Metasploit 3.6安装与配置之Linux篇
- 微信红包系统设计 优化
- 【精读AI论文】inceptionV2 BN-inception Batch Normalization BN 批量标准化
- 【unity】编辑模式预览Animator动作,2种实现。 其中一种 playback模式是Cinema Director用的会使Unity Crash
- 最新matlab音乐合成实验报告,Matlab音乐合成实验报告
- POJ 【1088】 滑雪
- 女朋友过生日送什么礼物好?
- 我的世界服务器兑换系统怎么做,Minecraft我的世界村民交易方法及兑换表格
- 在树莓派中安装MCSM面板
- 任意文件下载(读取)
- 地热能类毕业论文文献有哪些?
热门文章
- C语言循环为1404的循环,考试,求大神帮忙,C语言,小弟感激不尽
- js 通过jquery插件获取url参数 其中的一个小问题,或许不算Bug。
- 利用浏览器调试功能 计算 百度网盘 文件数量
- Windows 7旗舰版安装Visual Studio 2013 Ultimate的系统必备及注意事项
- Android(kotlin)之对一组图片数据更新最后的修改时间进行分类显示
- node.js之npm
- Android之使用PopupWindow让背景变黯但是华为手机出现屏幕一闪一闪问题解决办法
- MultiProcessing中主进程与子进程之间通过管道(Pipe)通信
- 吃屎是一种什么样的体验?
- 正方形与圆的爱恨纠缠...