SpringBoot 定制化原理
一、定制化的常见方式
- 修改配置文件
- xxxxxCustomizer
- 编写自定义的配置类 xxxConfiguration;+ @Bean替换、增加容器中默认组件;视图解析器
- Web应用
编写一个配置类实现 WebMvcConfigurer 即可定制化web功能;+ @Bean给容器中再扩展一些组件
@Configuration
public class AdminWebConfig implements WebMvcConfigurer
- @EnableWebMvc + WebMvcConfigurer —— @Bean 可以全面接管SpringMVC,所有规则全部自己重新配置; 实现定制和扩展功能
- 原理
- WebMvcAutoConfiguration 默认的SpringMVC的自动配置功能类。静态资源、欢迎页… •
- 一旦使用 @EnableWebMvc 、。会 @Import(DelegatingWebMvcConfiguration.class)
- DelegatingWebMvcConfiguration 的 作用,只保证SpringMVC最基本的使用
• 把所有系统中的WebMvcConfigurer 拿过来。所有功能的定制都是这些 WebMvcConfigurer 合起来一起生效
•自动配置了一些非常底层的组件。RequestMappingHandlerMapping、这些组件依赖的组件都是从容器中获取
• public class DelegatingWebMvcConfiguration extends WebMvcConfigurationSupport- WebMvcAutoConfiguration 里面的配置要能生效必须
@ConditionalOnMissingBean(WebMvcConfigurationSupport.class)- @EnableWebMvc 导致了 WebMvcAutoConfiguration 没有生效。
二、原理分析套路
场景starter - xxxxAutoConfiguration - 导入xxx组件 - 绑定xxxProperties -- 绑定配置文件项
参考视频
SpringBoot 定制化原理相关推荐
- SpringBoot定制化开发
文章目录 SpringBoot定制化开发 SpringBoot定制化开发 原理分析套路: 先找他对应的场景,然后我们就可以定位到对应的xxxxAutoConfiguration看他内部导入了哪些组件, ...
- [SpringBoot2]定制化原理_SpringBoot定制化组件的几种方式
定制化原理 定制化的常见方式 ● 修改配置文件: ● xxxxxCustomizer: ● 编写自定义的配置类 xxxConfiguration:+ @Bean替换.增加容器中默认组件:视图解析器 ● ...
- SpringBoot--->>>web-->>定制化原理
原理分析 在SpringBoot中,通过之前的web开发原理的探究,会发现,SpringBoot底层总能自己根据场景跑起来.流程是:导入场景 -> 对应的AutoConfiguration就会启 ...
- SpringBoot : 定制化Bean的利器:BeanPostProcessor BeanFactoryPostProcessor
1.美图 2.概述 Spring的面试中,一般都会问到IOC和AOP,大部分同学都能回答出这些知识点的基本运用,如果再多问一句,AOP的底层实现方式,大部分人都会回答动态代理.那么动态代理是如何被使用 ...
- springboot的定制化方式
springboot的定制化原理 个人理解,springboot设计目标就是希望利用提供各种默认约定配置,代替配置,从而达到简略配置的目的. 实现原理就是利用类似SPI机制,通过AutoConfigu ...
- SpringBoot使用assembly进行项目定制化打包
SpringBoot使用assembly进行项目定制化打包 一.项目配置 1.添加插件 (1)编辑项目的 pom.xml 文件,加入 assembly 打包插件: <build><p ...
- 基于 RocketMQ Prometheus Exporter 打造定制化 DevOps 平台
作者 | 陈厚道 冯庆 来源 | 阿里巴巴云原生公众号 导读:本文将对 RocketMQ-Exporter 的设计实现做一个简单的介绍,读者可通过本文了解到 RocketMQ-Exporter 的实 ...
- springboot应用启动原理(一) 将启动脚本嵌入jar
Spring Boot Takes an opinionated view of building production-ready Spring applications. Spring Boot ...
- 这样讲 SpringBoot 自动配置原理,你应该能明白了吧
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 作者:你在我家门口 juejin.im/post/5ce5effb ...
最新文章
- Product Backlog:终极任务清单
- 对操作系统安全构成威胁的问题
- 如果你是PM,想转PM,拿走
- 原本要与Hinton当同事,最后被迫Bengio门下读博? | 独立研究员的坎坷之路
- ASP.NET中删除文件夹下的文件
- logo qt添加_linux下如何给qt程序添加图标?
- mysql游标结果为空
- python-mysql 基础知识记录
- OpenGL研究3.0 多边形区域填充
- C/C++ OpenCV设置感兴趣区域ROI
- Entity Framework -- 使用类别字段的实体继承关系
- UnicodeEncodeError: #39;ascii#39; codec can#39;t encode character u#39;\u5929#39; in position 2...
- 计算机作文素材,学电脑作文素材
- 【Django】uWSGI和Gunicorn【转】
- 只能存储12KB数据,“码农女神”是怎样把人类送上月球的?
- 6. 大尾数法或小尾数法
- Mysql utf8mb3 utf8mb4 与UTF8 字符集参数(character_set_system)的说明
- 听说RSI准的难以置信?
- Python实现 文本词频统计(嵩天老师)
- ISO13335标准简介
热门文章
- MIPI related
- 180904 再卖菜 ccf
- 今天仔细学习了html加载执行的顺序
- cogs 1456. [UVa 10881,Piotr's Ants]蚂蚁
- discuz数据库相关表
- php魔术方法__SET __GET
- Ajax调试servlet连接失败
- IIS下的FTP使用
- [Bug] .NET 2.0 的Bug —— ComboBox中不能添加Component.
- C++找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列上最小(也可能没有鞍点)