WebMvcConfigurer

WebMvcConfigurer 是 Spring Framework 中的一个接口,

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

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

实现拦截器的不同策略:

编写一个类实现HandlerInterceptor接口;

编写一个类实现WebMvcConfigurer 的 addInterceptors

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

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

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 接口的方式进行配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值