37、springboot 为 spring mvc 提供的自动配置及对自动配置的一些自定义定制(大体思路)

这篇具有很好参考价值的文章主要介绍了37、springboot 为 spring mvc 提供的自动配置及对自动配置的一些自定义定制(大体思路)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

springboot 为 spring mvc 提供的自动配置及对自动配置的一些自定义定制(大体思路)

★ Spring Boot主流支持两个MVC框架:

Spring MVC(基于Servlet)
Spring WebFlux(基于Reactive,属于响应式API)

★ Spring Boot为Spring MVC提供了哪些自动配置

Spring MVC的自动配置主要由WebMvcAutoConfiguration自动配置类负责提供支持。

Spring Boot为Spring MVC自动配置大致提供了如下功能:

 - 引入了ContentNegotiatingViewResolver和BeanNameViewResolver。
   (两个典型的视图解析器:负责将String类型的逻辑视图名解析成实际View对象)

 - 对服务器静态资源提供支持,包括对WebJars的支持。

 - 自动注册 Converter、GenericConverter、Formatter这些Bean。
   (类型转换、格式化器)

 - 支持使用HttpMessageConverters来注册HttpMessageConverter。
   HttpMessageConverter它主要负责完成String类型的请求参数与JSON数据、XML数据之间的相互转换。
   HttpMessageConverter最常用的实现是基于Jackson或Jackson XML

 - 自动注册 MessageCodeResolver。

 - 支持静态的index.html首页。

 - 自定义Favicon支持。用于为应用指定图标

 - ConfigurableWebBindingInitializer Bean的自动使用。

 上面这些内容,基本上就是Spring MVC开发时所需的各种基础Bean,因此Spring Boot为Spring MVC提供大量的自动配置。

★ 对自动配置进行定制

如果觉得springboot对spring mvc 的一些自动配置不满意,我们还可以对这些自动配置进行定制。

▲ 定制方式一:

 若要在保留自动配置的基础上增加一些自定义的Spring MVC配置(例如添加拦截器、格式化器、视图控制器等),
 则可通过实现自己的WebMvcConfigurer类,并使用@Configuration注解修饰该类、但不要使用@EnableWebMvc注解修饰。

 实现该类的如下方法:
 - addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers):添加参数解析器
 - addFormatters(FormatterRegistry registry):添加格式化器
 - addInterceptors(InterceptorRegistry registry):添加拦截器。
 - addViewControllers(ViewControllerRegistry registry):添加视图控制器
 - addResourceHandlers: 添加额外的静态资源处理目录。

代码演示:
若要在保留自动配置的基础上增加一些自定义的Spring MVC配置,可以这些写,这里只是弄个框架。
37、springboot 为 spring mvc 提供的自动配置及对自动配置的一些自定义定制(大体思路),springboot,spring boot

▲ 定制方式二:

  如果要实现自定义RequestMappingHandlerMapping、RequestMappingHandlerAdapter或ExceptionHandlerExceptionResolver
  代替自动配置自动配置的这些Bean。

  RequestMappingHandlerMapping :根据@RequestMapping注解负责请求映射到指定控制器的指定处理方法。
  RequestMappingHandlerAdapter :它是配合RequestMappingHandlerMapping使用。
  ExceptionHandlerExceptionResolver: 它主要做异常解析,它主要为@ExceptionHandler注解修饰的异常处理方法来提供支持。

  要通过定义WebMvcRegistrations Bean来注册它们。

代码演示:
37、springboot 为 spring mvc 提供的自动配置及对自动配置的一些自定义定制(大体思路),springboot,spring boot

▲ 定制方式三:

 本质:用自定义的Bean,取代Spring Boot为Spring MVC自动配置的Bean

 配置自定义的ConfigurableWebBindingInitializer,它会取代自动配置的WebBindingInitializer

 WebBindingInitializer它也是Spring MVC本身的API,
 
 它的作用就是为每个请求都初始化一个WebBinder,而WebBinder就负责完成数据绑定。

代码演示:
37、springboot 为 spring mvc 提供的自动配置及对自动配置的一些自定义定制(大体思路),springboot,spring boot文章来源地址https://www.toymoban.com/news/detail-680323.html

★ 全面接管(放弃自动配置)——极少使用

 如果使用@Configuration和@EnableWebMvc注解同时修饰自己的Spring MVC配置类。

 这意味着完全关闭了Spring Boot为Spring MVC的自动配置,开发者必须手动完成所有关于Spring MVC的配置工作。

到了这里,关于37、springboot 为 spring mvc 提供的自动配置及对自动配置的一些自定义定制(大体思路)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring MVC中的一些常用注解

    目录 @RequestMapping 实现路由映射 限制请求方式 @PathVariable 从url中获取变量的值 更改绑定参数的名字 @RequestParam 可以传递集合  更改绑定参数的名字 可修改是否为必传参数 @RequestBody 获取请求正文的内容  可修改是否为必传参数 @RequestPart 可以支持上传文件 更改绑定参数的名字

    2024年01月19日
    浏览(33)
  • springBoot 配置文件 spring.mvc.throw-exception-if-no-handler-found 参数的作用

    在Spring Boot应用中,可以通过配置文件来控制当找不到请求处理器(handler)时是否抛出异常。具体的配置参数是 spring.mvc.throw-exception-if-no-handler-found 。 默认情况下,该参数的值为 false ,即当找不到请求处理器时,Spring MVC会返回404 Not Found响应。如果将该参数设置为 true ,则当

    2024年02月12日
    浏览(29)
  • Spring(8) Springboot自动配置原理

    Springboot 的自动配置原理,是Springboot中最高频的一道面试题,也是Springboot框架最核心的思想。 首先我们看一张我总结的自动配置原理概览图: 下面,我们就根据这张图详细描述一下具体过程: 首先,我们来看一段代码: 上面就是一段普通的 Springboot 引导类代码,这里有一

    2024年02月12日
    浏览(30)
  • SpringBoot相比于Spring的优点(自动配置和依赖管理)

    我们先看一下我们Spring整合Druid的过程,以及我们使用SpringBoot整合Druid的过程我们就知道我们SpringBoot的好处了。 Spring方式 Spring方式分为两种,第一种就是我们使用xml进行整合,第二种就是使用我们注解进行简化 xml方式 (1)导入坐标  (2)书写jdbc.properties文件和  applicati

    2024年02月08日
    浏览(31)
  • Spring,SpringBoot,Spring MVC的区别是什么

    我们通常所说的 Spring 指的是 Spring Framework(Spring 框架),它是⼀个开源框架,有着活跃⽽庞⼤的社区,这就是它之所以能⻓久不衰的原因。Spring ⽀持⼴泛的应⽤场景,它可以让 Java 企业级的应⽤程序开发起来更简单。 ⽤⼀句话概括 Spring: Spring 是包含了众多⼯具⽅法的 I

    2024年02月15日
    浏览(33)
  • SpringBoot整理-Spring Boot与Spring MVC的区别

    Spring Boot 和 Spring MVC 是 Spring 框架的两个不同部分,它们在 Java Web 开发中扮演着各自独特的角色。理解它们之间的区别有助于更好地利用 Spring 生态系统进行有效的应用开发。 Spring MVC 定义:  Spring MVC 是基于 Model-View-Controller(模型-视图-控制器)设计模式的一个 

    2024年01月22日
    浏览(34)
  • Spring MVC学习随笔-第一个Spring MVC程序(父子项目结构、Tomcat配置、ViewResolver)

    学习视频:孙哥说SpringMVC:结合Thymeleaf,重塑你的MVC世界!|前所未有的Web开发探索之旅 JDK1.8+ Maven3.6+ IDEA2021+ SpringFramework 5.1.4 Tomcat8.5.29 MySQL5.7.18 按照父子项目的结构,管理和创建项目,创建一个空Project作为父项目,pom文件如下 创建子项目Module: 子项目pom文件: 注意 :初次

    2024年02月05日
    浏览(50)
  • Spring MVC 配置详解 WebMvcConfigurer

    MVC Java配置和MVC XML命名空间提供了适合大多数应用程序的默认配置,并提供了一个配置API来定制它。 在Java配置中,你可以使用  @EnableWebMvc  注解来启用MVC配置,如下例所示: 在XML配置中,你可以使用  mvc:annotation-driven  元素来启用MVC配置,如下例所示: 在Java配置中,你可

    2024年02月02日
    浏览(29)
  • Spring MVC 三 :基于注解配置

    Servlet3.0 Servlet3.0是基于注解配置的理论基础。 Servlet3.0引入了基于注解配置Servlet的规范,提出了可拔插的ServletContext初始化方式,引入了一个叫ServletContainerInitializer的接口。 An instance of the ServletContainerInitializer is looked up via the jar services API by the container at container / application sta

    2024年02月11日
    浏览(27)
  • Spring MVC 二 :基于xml配置

    创建一个基于xml配置的Spring MVC项目。 Idea创建新项目,pom文件引入依赖: 在项目的webapp/WEB-INF目录下创建web.xml文件,配置DispatcherServlet: 注意其中定义了contextConfigLocation:上下文配置文件位置,配置为:classpath:springmvc.xml,指定Spring MVC启动过程中会到指定位置读取该配置文件

    2024年02月11日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包