WebMvcConfigurer接口详解及使用方式(Spring-WebMvc)

简介

如下图所示WebMvcConfigurer是spring-webmvc jar包下的一个接口,spring-webmvc jar包又来源于spring-boot-starter-web,所以要使用WebMvcConfigurer要引入spring-boot-starter-web依赖。WebMvcConfigurer接口提供了常用的web应用拦截方法。通过实现该接口可以实现添加自定义拦截器,跨域设置、页面跳转和静态资源访问等功能。

WebMvcConfigurer所在位置

引入项目依赖

<!-- SpringBoot Web容器 -->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-web</artifactId>
	<version>x.x.xx</version>
</dependency>

自定义配置类并实现WebMvcConfigurer接口

@Configuration
public class MvcConfigurer implements WebMvcConfigurer {
   
    
	/**
     * 此处可添加自定义的拦截器
	 * PS:自定义的拦截器要实现HandlerInterceptor接口
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
   
        registry.addInterceptor(new AuthenticationInterceptor());
    }

	/**
     * 此处可以进行跨域设置
	 * PS:同源策略是一个重要的安全策略,它用于限制一个源的文档或者它加载的脚本如何能与另一个源的资源进行交互
     */
	@Override
    public void addCorsMappings(CorsRegistry registry) {
   
        registry.addMapping("/**")
                .allowedOrigins("http://example.com")
                .allowedMethods("GET", "POST", "PUT", "DELETE")
                .allowedHeaders("*");
    }
    
	/**
     * 将控制器映射到特定的视图名称
     */
    @Override
    public void addViewControllers(ViewControllerRegistry registry)
    {
   
        registry.addViewController("/").setViewName("forward:" + indexUrl);
    }


	/**
     * 此处用于配置静态资源路径,通常用于展示图片、样式表、JavaScript等文件。
     */
	@Override
    public void addResourceHandlers(ResourceHandlerRegistry registry)
    {
   
        /** 本地文件上传路径 */
        registry.addResourceHandler(Constants.RESOURCE_PREFIX + "/**").addResourceLocations("file:" + FileLocationConfig.getProfile() + "/");
    }
    
    // 还可以实现其他方法...	
}

相关推荐

  1. Spring核心方法:Refresh全解(WebMVC如何装配、关联)

    2023-12-20 07:36:02       38 阅读
  2. 详解WebMvcConfigurer用法

    2023-12-20 07:36:02       41 阅读
  3. SpringMVC的WebMvcConfigurer返回

    2023-12-20 07:36:02       36 阅读
  4. Ali-Sentinel-Spring WebMVC 流控

    2023-12-20 07:36:02       26 阅读
  5. STM32 SDIO接口配置与使用方法详解

    2023-12-20 07:36:02       64 阅读
  6. Spring Boot 使用详解

    2023-12-20 07:36:02       34 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-20 07:36:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-20 07:36:02       101 阅读
  3. 在Django里面运行非项目文件

    2023-12-20 07:36:02       82 阅读
  4. Python语言-面向对象

    2023-12-20 07:36:02       91 阅读

热门阅读

  1. TensorFlow 的基本概念和使用场景

    2023-12-20 07:36:02       60 阅读
  2. bash数组的用法

    2023-12-20 07:36:02       61 阅读
  3. Python装饰器

    2023-12-20 07:36:02       64 阅读
  4. 正则表达式

    2023-12-20 07:36:02       71 阅读
  5. 4-Docker命令之docker volume

    2023-12-20 07:36:02       69 阅读
  6. 实战:使用Spring Boot监控SQL执行

    2023-12-20 07:36:02       67 阅读
  7. 黑豹程序员-安装docker-ce

    2023-12-20 07:36:02       55 阅读
  8. Jupyter的简单实用

    2023-12-20 07:36:02       63 阅读
  9. 论文笔记 | ICLR 2023 WikiWhy:回答和解释因果问题

    2023-12-20 07:36:02       73 阅读