扩展,全面接管SpringMvc

SpringMVC详解——SpringBoot扩展SpringMVC原理和全面接管SpringMVC ** 如果想在SpringBoot中扩展一些SpringMVC的配置,例如需要配置自定义的视图解析器或拦截器等,需要怎么实现呢?** 例如,自定义一个视图解析器: @Configuration public class MyConfig implements WebMvcConfigurer { @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addVie 阅读详情

扩展SpringMVC

    <mvc:view-controller path="/hello" view-name="success"/>
    <mvc:interceptors>
        <mvc:interceptor>
            <mvc:mapping path="/hello"/>
            <bean></bean>
        </mvc:interceptor>
    </mvc:interceptors>

编写一个配置类(@Configuration),是WebMvcConfigurer类型;不能标注@EnableWebMvc;

既保留了所有的自动配置,也能用我们扩展的配置;

//使用WebMvcConfigurerAdapter可以来扩展SpringMVC的功能
@Configuration
public class MyMvcConfig implements WebMvcConfigurer {

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
       // super.addViewControllers(registry);
        //浏览器发送 /sss请求来到 success
        registry.addViewController("/sss").setViewName("success");
    }
}

原理:

​ 1)、WebMvcAutoConfiguration是SpringMVC的自动配置类

​ 2)、在做其他自动配置时会导入;@Import(EnableWebMvcConfiguration.class)

    @Configuration
	public static class EnableWebMvcConfiguration extends DelegatingWebMvcConfiguration {
      private final WebMvcConfigurerComposite configurers = new WebMvcConfigurerComposite();

	 //从容器中获取所有的WebMvcConfigurer
      @Autowired(required = false)
      public void setConfigurers(List<WebMvcConfigurer> configurers) {
          if (!CollectionUtils.isEmpty(configurers)) {
              this.configurers.addWebMvcConfigurers(configurers);
            	//一个参考实现;将所有的WebMvcConfigurer相关配置都来一起调用;  
            	@Override
             // public void addViewControllers(ViewControllerRegistry registry) {
              //    for (WebMvcConfigurer delegate : this.delegates) {
               //       delegate.addViewControllers(registry);
               //   }
              }
          }
	}

​ 3)、容器中所有的WebMvcConfigurer都会一起起作用;

​ 4)、我们的配置类也会被调用;

​ 效果:SpringMVC的自动配置和我们的扩展配置都会起作用;

全面接管SpringMVC(不推荐)

SpringBoot对SpringMVC的自动配置不需要了,所有都是我们自己配置;所有的SpringMVC的自动配置都失效了

我们需要在配置类中添加@EnableWebMvc即可;

//使用WebMvcConfigurerAdapter可以来扩展SpringMVC的功能
@EnableWebMvc
@Configuration
public class MyMvcConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
       // super.addViewControllers(registry);
        //浏览器发送 /atguigu 请求来到 success
        registry.addViewController("/aaa").setViewName("success");
    }
}

原理:

为什么@EnableWebMvc自动配置就失效了;

1)@EnableWebMvc的核心

@Import(DelegatingWebMvcConfiguration.class)
public @interface EnableWebMvc {

2)、

@Configuration
public class DelegatingWebMvcConfiguration extends WebMvcConfigurationSupport {

3)、

@Configuration
@ConditionalOnWebApplication
@ConditionalOnClass({ Servlet.class, DispatcherServlet.class,
		WebMvcConfigurerAdapter.class })
//容器中没有这个组件的时候,这个自动配置类才生效
@ConditionalOnMissingBean(WebMvcConfigurationSupport.class)
@AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE + 10)
@AutoConfigureAfter({ DispatcherServletAutoConfiguration.class,
		ValidationAutoConfiguration.class })
public class WebMvcAutoConfiguration {

4)、@EnableWebMvc将WebMvcConfigurationSupport组件导入进来;

5)、导入的WebMvcConfigurationSupport只是SpringMVC最基本的功能;

【全网最全最详细】智能体提示词prompt教程 定义:提示词是用户输入给AI模型(如ChatGPT、MidJourney等)的指令或问题,用于引导模型生成特定类型的输出。它是用户与AI交互的核心媒介。作用:提示词的质量直接影响AI输出的准确性和相关性。好的提示词能明确任务边界、减少歧义,并激发模型的创造力。提示词就是“给AI下指令的说明书”——越清楚、越具体,AI干得越好!帮你更快、更准地拿到想要的结果,不用和AI“猜谜语”。 阅读详情

相关推荐

别再只改config了!YOLO/RT-DETR多通道输入实战:数据集结构、多卡训练与参数优先级避坑指南

本文详细解析了YOLO/RT-DETR模型在多通道输入(如8通道多光谱图像)中的实战应用,涵盖数据集结构优化、数据加载器改造、模型参数调优及多卡训练配置。针对常见的多通道输入报错问题,提供了系统的解决方案和性能优化技巧,帮助开发者高效实现非标准数据格式的适配与训练。

weixin_30955617的博客 397

spring学习笔记(十九)springboot_web开发

4.6 扩展与全面接管SpringMVC 1.扩展springMVC 以前的springmvc.xml文件 <!-- 视图映射,发hello请求的时候也是映射到success页面 --> <mvc:view-controller path="/hello" view-name="success"/> <!-- springMVC 拦截...

毛依依的博客 205

手把手教你解决Windows 10网络驱动器无法访问问题(附详细排查步骤)

本文详细指导Windows 10用户解决网络驱动器无法访问的常见问题。通过从现象快速定位到系统排查,提供了从检查网络连通性、修复凭据权限到调整高级设置的完整步骤,特别是针对“找不到网络路径”等错误,帮助用户高效恢复对共享资源的访问。

weixin_29233857的博客 517

7、springmvc的自动配置

1、springmvc的自动配置 文档:https://docs.spring.io/spring-boot/docs/2.1.1.RELEASE/reference/htmlsingle/#boot-features-spring-mvc WebMvcAutoConfiguration.java Spring Boot 自动配置好了SpringMVC 以下是SpringBo...

weixin_34235105的博客 145

Wafer的T7 Code是什么,怎么来的

在半导体Cim系统中,waferstart 业务需要支持 Sorter 读取 Wafer 的 T7 Code,与 MES 的 Wafer ID 进行绑定,以便向 前追溯 Wafer 历史,那么问题来了,T7code 是什么Wafer的T7 Code是一种,用于标识双面抛光的晶圆。这种标记采用二维矩阵代码符号,适用于各种尺寸的晶圆,不仅限于450mm无缺口晶圆7。T7 Code是衬底来料背面通常会有的供应商刻的追溯ID,这是一串数字和字母组成的流水码。

阿拉伯梳子的专栏 7925

内存学习(3):DRAM的基础存储结构(存储层级、读写过程,刷新与暂存)

DRAM,全称为 Dynamic Random Access Memory ,中文名是“动态随机存取存储器”。所谓“动态”是和“静态”相对应的,芯片世界里还有一种 SRAM 静态随机存取存储器的存在。笼统地说,DRAM 的结构比 SRAM 更简单,面积占用更小,适合制作大容量的存储芯片;而 SRAM 结构复杂一些,一般使用六个晶体管,面积消耗大,但是读写速度快,而且因为 SRAM 只用到晶体管,所以在工艺上和逻辑芯片相兼容,我们可以在逻辑芯片上直接集成 SRAM。

呆呆象呆呆的博客 2万+

spring boot 学习进阶(六)----SpringMVC自动配置

https://docs.spring.io/spring-boot/docs/1.5.10.RELEASE/reference/htmlsingle/#boot-features-developing- web-applications 1. Spring MVC auto-configuration Spring Boot 自动配置好了SpringMVC 以下是SpringBoot对Sprin...

qq904748592的博客 215

WSL2部署Cadence Virtuoso IC25.1:Ubuntu 26.04排障实录

WSL2以轻量虚拟机结合完整Linux内核,为Windows桌面环境提供了原生级Linux运行能力,解决了传统虚拟机资源开销大、双系统切换低效的问题。对于依赖X11图形协议、FlexNet许可服务和特定动态库的EDA工具链而言,利用WSL2部署Linux发行版需要关注系统集成、显示通路与许可连通性。从技术原理看,图形层X Server的配置、动态库依赖的补齐以及license服务的主机名解析,共同构成EDA工具在WSL2中稳定运行的关键环节。在芯片设计场景中,设计工程师常需在Windows办公机与Linux

weixin_29597551的博客 211

springboot源码-springmvc之WebMvcConfigurer

springboot2.0以后推荐实现WebMvcConfigurer去更改springmvc的配置。不建议直接继承WebMvcConfigurationSupport的方式去更改配置。 WebMvcConfigurer是一个接口类 并且里面的方法利用jdk8的特性全部给了默认的空实现,所以springboot不建议使用WebMvcConfigurerAda...

xiaomujiang_dafangzi的博客 519

Windows下Python多版本共存与切换的终极指南(含环境变量详解)

本文详细解析了在Windows系统下实现Python多版本共存与切换的完整方案。通过深入讲解环境变量Path的底层机制,提供了从安装策略、精细化Path管理到创建快速切换脚本的实战指南,并介绍了py启动器和虚拟环境等高级技巧,帮助开发者彻底解决版本冲突问题,提升开发效率。

v6b7n8m9q0的博客 537

Windows Server安装Intel I219-V网卡驱动完整教程

在Windows Server系统上安装Intel I219-V网卡驱动的方法。

小白成长历程 5177

【spring-boot】spring-boot-SpringMvc自动配置学习

4、SpringMVC自动配置 https://docs.spring.io/spring-boot/docs/1.5.10.RELEASE/reference/htmlsingle/#boot-features-developing-web-applications 1. Spring MVC auto-configuration Spring Boot 自动配置好了SpringMVC ...

芝兰生于深谷,不以无人而不芳 1584

PD虚拟机网络初始化失败的权限修复指南

本文针对Parallels Desktop虚拟机常见的“网络初始化失败”问题,提供了详细的权限修复指南。通过分析问题根源,指导用户安全备份并修改关键的`network.desktop.xml`和`dispatcher.desktop.xml`配置文件,以恢复PD虚拟机的网络连接。文章还包含了修复后的验证步骤及预防措施,帮助用户彻底解决并避免此类权限问题。

qqq44的博客 851

springMVC的扩展与接管

Spring_Boot专栏 上一篇 主目录 下一篇 目录1 扩展SpringMVC2 全面接管SpringMVC 【前言】 https://docs.spring.io/spring-boot/docs/版本号/reference/htmlsingle/ springMVC自动配...

ShaneHolmes 841

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

扩展SpringMVC WebMvcConfigurerAdapter ||全面接管SpringMVC @EnableWebMvc

扩展SpringMVC ==编写一个配置类(@Configuration),是WebMvcConfigurerAdapter类型;不能标注@EnableWebMvc==; 既保留了所有的自动配置,也能用我们扩展的配置; 使用WebMvcConfigurerAdapter可以来扩展SpringMVC的功能 原理: ​ 1)、WebMvcAutoConfiguration是Sprin...

qq_39368007的博客 354

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

【SpringBoot】扩展与全面接管SpringMVC方法说明

springboot中扩展与全面接管springmvc 如果对SpringBoot不甚了解, 可能会对其just run的做事方式有所顾虑, 可能会对AutoConfiguration的魔法感到有一丝丝未知的恐惧?也许会认为这个框架太过于简单无法满足需要? 不过, 一旦你了解SpringBoot,这些疑问句都会变成感叹句…, SpringBoot对初学者展示了足够的友好,也同时有极大的灵活性,让...

写写平时的技术与感想 1929

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Spring Boot—SpringMVC自动配置原理以及扩展和全面接管SpringMVC

文章目录1.以下是SpringBoot对SpringMVC的默认配置2、扩展SpringMVC3、全面接管SpringMVC;5、如何修改SpringBoot的默认配置 Spring MVC auto-configuration 1.以下是SpringBoot对SpringMVC的默认配置 (WebMvcAutoConfiguration) Inclusion of ContentNegoti...

梁同学与Android 361

【web开发】扩展与全面接管springmvc

1. 扩展springmvc 方法:编写一个配置类(@Configuration),实现WebMvcConfigurer接口,不能标注@EnableWebMvc。 特点:既保留了springboot所有的自动配置,也能用我们扩展的配置。 示例: pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.o

... 209

13 | SpringBoot如何扩展和全面接管SpringMVC

如果我们使用SSM框架,我们都会在springmvc-config.xml的配置文件,都会写。。 举个栗子: <mvc:view-controller path="/hello" view-name="success"/> <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/hello"/> <bean></

NSX-Truth 290

SpringBoot之扩展与全面接管SpringMVC

SpringBoot之扩展与全面接管SpringMVC If you want to keep those Spring Boot MVC customizations and make more MVC customizations (interceptors, formatters, view controllers, and other features), you can add your own @Configuration class of type WebMvcConfigurer but .

疯狂的菜鸡 348

springboot之如何修改springboot的默认配置&扩展springmvc&全面接管springmvc

模式: 1)springboot在自动配置很多组件的时候,先看容器中有没有用户自己配置的(@Bean、@Component)。如果有就用用户配置的,如果没有,才自动配置。如果有些组件可以有多个(如ViewResolver),则将用户配置的和自己默认的组合起来。 2)在springboot中会有非常多的Configurer帮助我们进行扩展配置 =========================...

level_Tiller的博客 494

SpringMVC自动配置原理以及扩展与全面接管springMvc

SpringMVC自动配置原理 Spring Boot 为 Spring MVC 提供了自动配置,适用于大多数应用程序。 自动配置在 Spring 的默认值之上添加了以下功能: 包括ContentNegotiatingViewResolver(视图解析器:根据方法的返回值得到视图对象(View),视图对象决定如何渲染(转发?重定向?))和BeanNameViewResolver。 ContentNegotiatingViewResolver:组合所有的视图解析器。 如何定制:我们可以给自己的容器中添加一个视

张璟冰的博客 271

springboot中关于springMvc默认配置,配置扩展,全面接管

1. apringMvc自动配置 springBoot整合springMVC时,提供了大量的自动化配置,相关的配置可查看org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration配置类。 在静态内部类org.springframework.boot.autoconfigure.web.servlet.WebM...

Rosen's 780

SpringBoot-06——【SpringBoot对MVC自动装配、扩展SpringMVC、全面接管SpringMVC】

文章目录1、SpringBoot对SpringMVC自动配置1.1、ContentNegotiatingViewResolver分析1.2、扩展SpringMVC1.3、全面接管SpringMVC 1、SpringBoot对SpringMVC自动配置 WebMvcAutoConfiguration:MVC自动配类 我们可以通过官方文档来看自动配置了什么东西 springboot:官方文档 图上springboot官方文档说明了对mvc自动装配的一些功能 1.1、ContentNegotiatingVi

weixin_44432069的博客 535

SpringBoot的web开发springMVC默认自动配置、扩展、全面接管springMVC

一、springMVC默认自动配置 我截取了springboot官方文档对springMVC的默认自动配置,如下图 1.配置了对index.html的支持,任何请求只要没有处理的都会转到这个欢迎页面 2.配置了Favicon.ico 3.配置了支持静态资源和webjars的访问 我在前一篇文章springboot的静态资源映射规则已经详细介绍过了https://blog.csdn.n...

qq_29833023的博客 433

SpringBoot扩展SpringMVC原理和全面接管SpringMVC

如果想在SpringBoot中扩展一些SpringMVC的配置,例如需要配置自定义的视图解析器或拦截器等,需要怎么实现呢? 例如,自定义一个视图解析器:

weixin_46334920的博客 1155
上一篇: FreeMarker基本使用(Springboot)
下一篇: 国际化
Pancras_gc
博客等级 码龄10年 2粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值