0011SpringBoot的@EnableWebMvc全面接管SpringMVC的自动配置(源码)
所谓的@EnableWebMvc全面接管SpringMVC的自动配置,是指@EnableWebMvc注解会使SpringMVC的自动配置失效,原理如下:
1、查看@EnableWebMvc的源码,如下图:
即导入了DelegatingWebMvcConfiguration.class类,查看该类的源码,如下图:
即导入的类继承自WebMvcConfigurationSupport类,所以也理解为导入了WebMvcConfigurationSupport类
2、查看SpringMVC的自动配置类WebMvcAutoConfiguration,内容如下图:
即SpringMVC的自动配置类生效的一个前提条件是容器中不能含有WebMvcConfigurationSupport.class类;
而我们在步骤1中讲到,当使用@EnableWebMvc注解的时候,会向容器中导入WebMvcConfigurationSupport类,
所以会导致SpringMVC的自动配置失效。
理解不到之处,望指正。
0011SpringBoot的@EnableWebMvc全面接管SpringMVC的自动配置(源码)的更多相关文章
- SpringBoot自动配置源码调试
之前对SpringBoot的自动配置原理进行了较为详细的介绍(https://www.cnblogs.com/stm32stm32/p/10560933.html),接下来就对自动配置进行源码调试,探 ...
- Spring Boot 自动配置 源码分析
Spring Boot 最大的特点(亮点)就是自动配置 AutoConfiguration 下面,先说一下 @EnableAutoConfiguration ,然后再看源代码,到底自动配置是怎么配置的 ...
- Spring Boot自动配置源码解析(基于Spring Boot 2.0.2.RELEASE)
在Spring Boot官方介绍中,首一段话是这样的(如下图).我们可以大概了解到其所表达的含义:我们可以利用Spring Boot写很少的配置来创建一个非常方便的基于Spring整合第三方类库的单体 ...
- springboot自动配置源码解析
springboot版本:2.1.6.RELEASE SpringBoot 自动配置主要通过 @EnableAutoConfiguration, @Conditional, @EnableConfig ...
- SpringBoot 源码解析 (五)----- Spring Boot的核心能力 - 自动配置源码解析
在上一篇博客中分析了springBoot启动流程,大体的轮廓只是冰山一角.今天就来看一下springBoot的亮点功能:自动化装配功能. 先从@SpringBootApplication开始.在启动流 ...
- SpringBoot源码学习1——SpringBoot自动装配源码解析+Spring如何处理配置类的
系列文章目录和关于我 一丶什么是SpringBoot自动装配 SpringBoot通过SPI的机制,在我们程序员引入一些starter之后,扫描外部引用 jar 包中的META-INF/spring. ...
- java框架之SpringBoot(5)-SpringMVC的自动配置
本篇文章内容详细可参考官方文档第 29 节. SpringMVC介绍 SpringBoot 非常适合 Web 应用程序开发.可以使用嵌入式 Tomcat,Jetty,Undertow 或 Netty ...
- 7、springmvc的自动配置
1.springmvc的自动配置 文档:https://docs.spring.io/spring-boot/docs/2.1.1.RELEASE/reference/htmlsingle/#boot ...
- SpringMVC的自动配置解析
https://docs.spring.io/spring-boot/docs/1.5.10.RELEASE/reference/htmlsingle/#boot-features-developin ...
随机推荐
- 【ARM-Linux开发】DRM学习(一)
http://www.landley.NET/kdocs/htmldocs/drm.html 非常好的一个链接,直接把DRM说的很透.很多API的功能都写全了. Table of Contents 1 ...
- kubeadm 部署kubernetes1.14
节点信息: 主机名 IP 角色 k8s-master 10.10.0.10 master节点 k8s-node01 10.10.0.11 集群worke节点 k8s-node02 10.10.0.12 ...
- 5年经验Java程序员面试20天
写在前面 今天分享的是一位5年工作经验的Java工程师在帝都的面试经验总结,看看这些互联网公司都爱问些什么题,希望对大家的面试有指导意义. 从事Java开发也有5年经验了,4月初自己的开启面试经历 ...
- Scala调用Kafka的生产者和消费者Demo,以及一些配置参数整理
kafka简介 Kafka是apache开源的一款用Scala编写的消息队列中间件,具有高吞吐量,低延时等特性. Kafka对消息保存时根据Topic进行归类,发送消息者称为Producer,消息接受 ...
- TypeScript symbol类型
自ECMAScript 2015(ES6)起,symbol成为了一种新的原生类型,就像基本类型number和string一样. ⒈介绍及使用方式 TypeScript中使用symbol类型和JavaS ...
- Scratch:海龟绘图(九)
在本课的前导部分,我们说到怎么做才能成为一个负责任的“程序猿”.我认为,负责任的程序员决不会草率的处理任何“函数接口”. 比如这个“画圆”函数,程序员就会认真推敲“哪些参数是必要的.哪些参数又是多余的 ...
- Pod——状态和生命周期管理及探针和资源限制
一.什么是Podkubernetes中的一切都可以理解为是一种资源对象,pod,rc,service,都可以理解是 一种资源对象.pod的组成示意图如下,由一个叫”pause“的根容器,加上一个或多个 ...
- 【解决方法】You seem to have the current working directory in your LD_LIBRARY_PATH environment variable.
参考地址:https://blog.csdn.net/qq_24755999/article/details/78722788 You seem to have the current working ...
- C#通过重载构造函数传递参数、实现两个窗体下的方法的互相调用
直接切入主题 有时候同一个项目下我们可能会使用多个窗体,窗体间方法互相调用也不可避免,好了,使用无参无返回值的方法,开始上图 1.新建一个winform项目Form1,并再添加一个窗体Form2:拖入 ...
- 校验用户名是否存在(ajax+jackson)
只是简单的仿某度注册的用户名输入离焦后检验 目录结构 没有涉及到数据库 html <!DOCTYPE html> <html lang="en"> < ...