WebMvcConfigurer

本文详细介绍了SpringFramework中的WebMvcConfigurer接口,包括配置拦截器、跨域资源共享、消息转换器、视图解析器和WebSocket服务器端点等内容,以及在SpringBoot中如何使用和配置这些功能。

WebMvcConfigurer 是 Spring Framework 中的一个接口,

用于配置 Spring MVC(Model-View-Controller)框架的行为。

通过实现该接口,可以添加拦截器、跨域配置、自定义消息转换器、视图解析器等。

实现拦截器的不同策略:

编写一个类实现HandlerInterceptor接口;

编写一个类实现WebMvcConfigurer 的 addInterceptors

网络:springboot\springMVC配置拦截器以及放行资源

springboot\springMVC配置拦截器以及放行资源_springmvc配置过滤器检查session-优快云博客

Filter、Interceptor 几乎拥有相同的功能?

Filter是Servlet定义的原生组件。好处,脱离Spring应用也能使用

Interceptor是Spring定义的接口。可以使用Spring的自动装配等功能

WebMvcConfigurer 接口包括的方法

  1. addInterceptors

通过实现这个方法,您可以添加拦截器,拦截器用于在请求进入控制器方法之前或之后执行一些逻辑。

示例:

@Override

public void addInterceptors(InterceptorRegistry registry) {

registry.addInterceptor(new LoginInterceptor())

.addPathPatterns("/") //所有请求都被拦截包括静态资源

.excludePathPatterns("/","/index","/register" ,"/static/"); //放行的请求

//ps 或者在配置中写spring.mvc.static-path-pattern=/static/**,然后在本页面改下,后边直接写/static/,

}

  1. extendMessageConverters

这个方法允许您扩展或修改默认的消息转换器(HttpMessageConverter),用于处理请求和响应的消息。

  1. configureViewResolvers

这个方法允许您配置视图解析器,您可以添加自定义的视图解析器。

  1. addResourceHandlers

通过实现这个方法,您可以配置静态资源的处理,例如CSS、JavaScript文件或图像。

  1. configureContentNegotiation

这个方法用于配置内容协商策略,允许根据请求的头部信息选择响应的内容类型。

  1. addCorsMappings

用于配置跨域资源共享(CORS)的映射规则,以允许或拒绝跨域请求。

示例:

public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOrigins("*") .allowedMethods("GET", "POST","OPTIONS") .allowedHeaders("*") .exposedHeaders("Access-Control-Allow-Headers", "Access-Control-Allow-Methods", "Access-Control-Allow-Origin", "Access-Control-Max-Age", "X-Frame-Options") .allowCredentials(false) .maxAge(3600); }

7.注入Bean

如果用的springboot,使用了内置的tomcat,就需要在此注入ServerEndpointExporter,这个bean会自动注册使用了@ServerEndpoint注解声明的Websocket endpoint 。

要注意,如果使用独立的servlet容器,而不是直接使用springboot的内置容器,就不要注入ServerEndpointExporter,因为它将由容器自己提供和管理

示例:

@Bean public ServerEndpointExporter serverEndpointExporter() { return new ServerEndpointExporter(); }

WebMVCConfigurer 是一个接口,它是 Spring MVC 框架中的一个扩展点,用于自定义和配置 Web MVC 的行为。通过实现该接口,可以在应用程序的启动阶段进行一些自定义配置,例如添加拦截器、配置视图解析器、设置静态资源路径等。 WebMVCConfigurer 接口定义了一系列的回调方法,可以通过重写这些方法来实现自定义配置。例如,常用的方法包括: 1. addInterceptors:用于添加拦截器,可以在请求处理之前或之后执行一些特定操作。 2. addViewControllers:用于配置简单的视图控制器,将一个URL映射到一个视图。 3. configureViewResolvers:用于配置视图解析器,将逻辑视图名称解析为具体的视图对象。 4. addResourceHandlers:用于配置静态资源的处理器,例如图片、CSS、JavaScript等文件的访问路径和存放位置。 5. configureDefaultServletHandling:用于配置静态资源的处理方式,默认情况下,Spring MVC 会使用 DispatcherServlet 处理所有请求,但可以通过该方法将静态资源交由容器默认的 Servlet 处理。 除了 WebMVCConfigurer 接口外,还有一个 WebMvcConfigurerAdapter 适配器类可以用来简化配置,它提供了一些默认的空实现方法,只需要重写需要自定义的方法即可。 需要注意的是,WebMVCConfigurer 接口和 WebMvcConfigurerAdapter 类已在 Spring 5.0 版本中被废弃,推荐使用实现 WebMvcConfigurer 接口的方式进行配置。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值