SpringBoot对Spring MVC都做了哪些事?

环境:Springboot2.4.12

Spring MVC自动配置

Spring Boot为Spring MVC提供了自动配置,可以很好地与大多数应用程序配合使用。

自动配置在Spring默认设置的基础上添加了以下功能:

  • 包含 ContentNegotiatingViewResolver 和 BeanNameViewResolver bean 。
  • 支持提供静态资源,包括对WebJars的支持(本文档后面会讲到)。
  • Converter 、 GenericConverter 和 Formatter bean的自动注册。
  • 对 HttpMessageConverters 的支持(本文档后面会讲到)。
  • 自动注册 MessageCodesResolver (本文档后面将介绍)。
  • 静态 index.html 的支持。
  • 自动使用 ConfigurableWebBindingInitializer bean(本文档后面将介绍)。

如果你想保留那些Spring Boot MVC自定义,并做更多的MVC自定义(拦截器、格式化器、视图控制器和其他特性),你可以添加你自己的WebMvcConfigurer类型的@Configuration类,但不需要@EnableWebMvc。

如果你想提供RequestMappingHandlerMapping、RequestMappingHandlerAdapter或ExceptionHandlerExceptionResolver的自定义实例,并且仍然保持Spring Boot MVC自定义,你可以声明一个WebMvcRegistrations类型的bean,并使用它来提供这些组件的自定义实例。

上面这段什么意思?就是我们可以自定义一个Class实现WebMvcRegistrations接口实现自定义的上面的RequestMappingHandlerMapping等相关的类。

WebMvcRegistrations 接口

public interface WebMvcRegistrations {
  default RequestMappingHandlerMapping getRequestMappingHandlerMapping() {
    return null;
  }
  default RequestMappingHandlerAdapter getRequestMappingHandlerAdapter() {
    return null;
  }
  default ExceptionHandlerExceptionResolver getExceptionHandlerExceptionResolver() {
    return null;
  }
}

自动配置中又是如何使用(知道)我们自定义的这个WebMvcRegistrations 类呢?

@Configuration(proxyBeanMethods = false)
@EnableConfigurationProperties(WebProperties.class)
public static class EnableWebMvcConfiguration extends DelegatingWebMvcConfiguration implements ResourceLoaderAware {
  // 注入自定义的WebMvcRegistrations
  private final WebMvcRegistrations mvcRegistrations;
  public EnableWebMvcConfiguration(ObjectProvider<WebMvcRegistrations> mvcRegistrations) {
    // ...
    this.mvcRegistrations = mvcRegistrationsProvider.getIfUnique();
  }
}

这里RequestMappingHandlerMapping 为例说明自动配置是如何使用自定义的。接着上面的类中,有如下方法定义。

@Configuration(proxyBeanMethods = false)
@EnableConfigurationProperties(WebPro
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring 是一个开源的应用框架,它提供了一个容器,可以管理对象的生命周期和对象间的依赖关系,以此来解决企业级应用程序开发的复杂性问题。Spring 框架提供了许多模块,包括 Spring Core、Spring MVCSpring Boot、Spring Security 等。其中,Spring Core 提供了核心的容器,Spring MVC 提供了基于 MVC 模式的 Web 应用程序开发支持,而 Spring Boot 是 Spring 的快速开发框架。 Spring Core 是 Spring 的核心模块,提供了 IoC 和 AOP 功能。IoC(Inversion of Control,控制反转)是一种思想,它将对象的创建和依赖注入的过程交给容器来管理,使得对象之间的关系更加松耦合,降低了代码的耦合度。AOP(Aspect Oriented Programming,面向切面编程)是一种编程思想,它通过在不影响原有业务逻辑的情况下,为系统添加新的功能,如务管理、日志记录等。 Spring MVCSpring 框架中的一个模块,它提供了基于 MVC(Model-View-Controller)模式的 Web 应用程序开发支持。它包括了一个控制器、模型和视图三个部分,其中控制器负责接收请求并调用相应的服务,模型负责封装业务逻辑,视图负责展示数据。Spring MVC 通过使用请求映射、视图解析器、拦截器等技术,使得开发人员可以更加方便地开发 Web 应用程序。 Spring Boot 是 Spring 的快速开发框架,它提供了快速开发、方便部署的特性。Spring Boot 集成了许多常用的技术,如 Spring Data、Spring MVC、Thymeleaf、JPA 等,同时也提供了许多开箱即用的功能,如自动配置、自动部署、内嵌服务器等。这些特性使得开发人员可以更加方便地开发、测试和部署应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值