首页 > 其他分享 >springboot mvc配置原理+扩展springmvc(重点)

springboot mvc配置原理+扩展springmvc(重点)

时间:2023-05-04 20:00:17浏览次数:36  
标签:springboot 自定义 springmvc 配置 继承 mvc WebMvcAutoConfiguration

1.新建config目录

2.在config目录下创建自定义配置类

3.根据官方文档得到要有注解@Configuration并且继承类WebMvcConfigurer

 

扩展springmvc:我们慢慢脱离了原始的繁琐的xml配置,现在转向javaconfig配置

 

最后扩展-> springmvc配置原理源码:

注意点:springmvc的配置在springboot也要用到自动装配类WebMvcAutoConfiguration

我们可以选择直接继承类WebMvcConfigurer并重写其中的方法

或者自己重新自定义thymeleaf也有自定义的视图解析器,但是如果需要自定义一些功能,可以写组件继承类WebMvcConfiguer

View Code

官方doc指出的问题:

 这是因为:

我们diy的自动配置类也是需要通过WebMvcAutoConfiguration类将我们diy的自动配置类给springboot托管的,WebMvcAutoConfiguration类中有个静态内部类WebMvcAutoConfigurationAdapter,这个类导入了EnableWebMvcConfiguration.class

 这个EnableWebMvcConfiguration类继承了DelegatingWebMvcConfiguration

 然而在DelegatingWebMvcConfiguration类中我们发现它继承了 WebMvcConfigurationSupport类

 

而在我们最开始的要保证类失效,必须满足WebMvcAutoConfiguration类能正常生效,但是WebMvcAutoConfiguration类要求不存在WebMvcConfigurationSupport类,这与我们上面说的冲突了,所以官方要求不加@EnableWebMvc

 =====================================分割线===================================================

 

标签:springboot,自定义,springmvc,配置,继承,mvc,WebMvcAutoConfiguration
From: https://www.cnblogs.com/MyBlogs-joyiyii/p/17372341.html

相关文章

  • springboot 多环境配置及配置文件的位置
    了解即可  ......
  • springboot 分析源码欢迎页和图标-> thymeleaf模板引擎常用语法->扩展
    欢迎页: icon: 注意点: thymeleaf模板引擎1.使用thymeleaf模板引擎前要导入对应依赖包2.阅读源码:根据源码说明我们可以将html文件放置在templates目录下,然后通过controller进行跳转即可 controller类://在templates下的东西需要通过controller类来跳转,//需要导入......
  • SpringBoot定义优雅全局统一Restful API 响应框架三
    我们目前已经设计出了,包含全局响应,异常错误响应进行了统一返回。但是错误内容我们设计的比较模糊统一,还可以进行细化这样更有利于定位错误当我们需要调用Http接口时,无论是在Web端还是移动端,都有可能遇到各种错误,例如参数缺失、类型错误、系统错误等。为了规范错误信息的返回,我们......
  • springboot与mongodb之事务管理(二)
    一、事务说明1、在4.0版本中,MongoDB支持副本集上的多文档事务,分片集群是不支持事务的,会报以下异常TransactionsarenotsupportedbytheMongoDBclustertowhichthisclientisconnected2、在版本4.2中,MongoDB引入了分布式事务,在副本集或分片集群上都是支持事务的。3......
  • springboot单元测试中添加了@Autowired任然报错nullpoint(已解决)
     使用了autowired还是报错空指针异常说明就是包没有导入,springboot导包的操作在于启动application类,所以问题就在于没有单元测试时没有启动主类,解决方法:@RunWith(SpringJUnit4ClassRunner.class)@SpringBootTest(classes=SaTokenDemoApplication.class)加上如上的注解,@runwi......
  • 【SpringBoot】【一】 加载初始化器、监听器详解
    1 前言本节主要讲下SpringBoot启动的时候,加载初始化器、监听器的过程哈。2 加载时机我们先来看下加载的时机,也就是什么时候加载的呢,就是我们SpringBoot启动的时候,创建SpringApplication的时候就会去加载的,我们看下:@SpringBootApplicationpublicclassDemoApplicati......
  • springboot与mongodb之整合(一)
    一、添加maven依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId><version>2.6.7</version></dependency>二、配置properties文件1、mongodb无......
  • springboot 切面注解方式 记录日志
    1.定义GateOpLogimportjava.lang.annotation.*;/***操作日志记录*@authorcodefulture*/@Target({ElementType.METHOD,ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic@interfaceGateOpLog{/***说明*/Strin......
  • springboot异常处理的通用方式2
    2、定义一个异常的枚举数组•ServerErrCodeDefine类//```java@AllArgsConstructor@GetterpublicenumServerErrCodeDefine{privateinterrCode;privateStringcode;privateHttpStatushttpStatus;privateStringmessageSourceKey;/***************************......
  • SpringBoot 集成 Shiro 简单教程
    1.前言 ApacheShiro是一个功能强大且易于使用的Java安全框架,提供了认证,授权,加密,和会话管理。Shiro有三大核心组件:Subject: 即当前用户,在权限管理的应用程序里往往需要知道谁能够操作什么,谁拥有操作该程序的权利,shiro中则需要通过Subject来提供基础的当前用户信息,Sub......