当前位置: 首页 > wzjs >正文

做胎压的网站重庆seo管理平台

做胎压的网站,重庆seo管理平台,网站做导航的地图导航,郑州富士康要搬迁是真的吗1.WebMvcConfigurer功能简介 org.springframework.web.servlet.config.annotation.WebMvcConfigurer 是 Spring MVC 提供的一个接口,用于自定义 Web 应用的配置。通过实现该接口,开发者可以灵活地添加拦截器(Interceptors)、配置…

1.WebMvcConfigurer功能简介

org.springframework.web.servlet.config.annotation.WebMvcConfigurer 是 Spring MVC 提供的一个接口,用于自定义 Web 应用的配置。通过实现该接口,开发者可以灵活地添加拦截器(Interceptors)、配置视图解析器、设置静态资源处理规则、定义消息转换器(Message Converters)等,从而对 Spring MVC 的行为进行深度定制。


WebMvcConfigurer 接口提供了一系列默认方法(Default Methods),可以通过重写这些方法来实现自定义配置。

public interface WebMvcConfigurer {default void addInterceptors(InterceptorRegistry registry) {}default void addResourceHandlers(ResourceHandlerRegistry registry) {}default void addCorsMappings(CorsRegistry registry) {}// ......
}

以下是一些常见的功能介绍:

方法用途
addInterceptors(InterceptorRegistry registry)添加自定义拦截器
addViewControllers(ViewControllerRegistry registry)添加简单的 URL 到视图的映射
configureMessageConverters(List<HttpMessageConverter<?>> converters)配置 HTTP 消息转换器
addResourceHandlers(ResourceHandlerRegistry registry)注册静态资源处理器
addCorsMappings(CorsRegistry registry)配置跨域请求
configurePathMatch(PathMatchConfigurer configurer)配置路径匹配规则
addFormatters(FormatterRegistry registry)添加格式化器(如日期格式)

2. 使用示例

要使用 WebMvcConfigurer,你需要创建一个配置类并实现该接口,通常还需要添加 @Configuration 和 @EnableWebMvc(可选) 注解。

import org.springframework.context.annotation.Configuration;@Configuration
//@EnableWebMvc //可选项,加上该注解后,会启用 Spring MVC 的默认配置,并禁用 Spring Boot 的自动配置。如果只是想微调配置,可以不加这个注解。
public class WebConfig implements WebMvcConfigurer {// 示例:添加自定义拦截器(Interceptor)@Overridepublic void addInterceptors(InterceptorRegistry registry) {//拦截器需要注册到 InterceptorRegistry 中才能生效。registry.addInterceptor(new MyCustomInterceptor()).addPathPatterns("/**");}// 示例:配置视图控制器(ViewController),添加 URL 到视图的映射@Overridepublic void addViewControllers(ViewControllerRegistry registry) {//这样 /home 请求会直接跳转到 home.jsp(或 Thymeleaf 的 home.html)。registry.addViewController("/home").setViewName("home");registry.addViewController("/login").setViewName("login");}//示例:配置消息转换器(Message Converter)@Overridepublic void configureMessageConverters(List<HttpMessageConverter<?>> converters) {//手动添加了 Jackson 的 JSON 转换器converters.add(new MappingJackson2HttpMessageConverter());}// 示例:配置静态资源处理@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");}// 示例:配置跨域请求//假设有如下架构: 前端:http://example.com; 后端 API:http://api.example.com/api/**//下述配置后,浏览器就知道允许 http://example.com 的请求访问 /api/** 路径下的接口,且只允许 GET 和 POST 方法,每次 OPTIONS 请求的结果最多缓存 1 小时@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/api/**") //指定哪些 URL 路径需要启用 CORS 配置;可以配置多个路径.allowedOrigins("http://example.com")//指定允许访问当前 API 的前端来源:这里只有来自 http://example.com 的请求才被允许.allowedMethods("GET", "POST")//指定允许的 HTTP 请求方法//当浏览器第一次发送一个复杂请求(如 PUT 或带有自定义头的请求)时,会先发送一个 OPTIONS 请求(预检请求),询问是否允许该请求。通过设置 maxAge,浏览器会在指定时间内缓存这个结果,避免重复发送 OPTIONS 请求,从而提高性能。.maxAge(3600);//设置浏览器缓存预检请求(Preflight Request)的最长时间(单位:秒)}
}

其中,自定义拦截器(Interceptor)定义如下:

import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class MyCustomInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {System.out.println("请求前执行:" + request.getRequestURI());return true;}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {System.out.println("请求后执行:" + request.getRequestURI());}
}

注意事项:

  • @EnableWebMvc 会启用 Spring MVC 的默认配置,并禁用 Spring Boot 的自动配置。如果只是想微调配置,可以不加这个注解。
  • 在 Spring Boot 中,如果使用了 @SpringBootApplication,默认已经启用了 MVC 配置,无需额外添加 @EnableWebMvc
  • 如果只实现WebMvcConfigurer的部分方法,其他默认配置仍会保留。

总结:WebMvcConfigurer 是 Spring MVC 的强大扩展点,能够让你以非侵入式的方式自定义 Web 应用的行为。通过实现其方法,你可以轻松控制拦截器、视图映射、静态资源、消息转换器等核心组件,是构建企业级 Web 应用不可或缺的工具之一。

如果有具体的需求,比如需要配置跨域、安全权限控制或国际化设置,可以基于这个接口进一步扩展。

http://www.dtcms.com/wzjs/348885.html

相关文章:

  • 供应链网站制作网站备案信息查询
  • 诚信网站 互联网建站网络工程师培训一般多少钱
  • 网站开发的团队有哪些百度官方网站入口
  • 广州专业网站建设后台管理便捷域名地址查询
  • 互联网网站建设月总结大连网站seo
  • 北京天津网站建设竞价推广培训课程
  • 卫计委网站一级医院建设深圳做网站的公司
  • 用jsp做的网站源代码下载百度百科官网入口
  • seo网站概述互联网营销方法有哪些
  • 做个简单的公司网站要多少钱百度投流
  • 哪个网站做体检预约的百度软件优化排名
  • 南开集团网站建设北京seo招聘
  • 做国外网站推广上海网站制作开发
  • 个人网站取名seo托管公司
  • wordpress 段落 两格石家庄百度搜索优化
  • 网站建设与经营关键词seo排名怎么选
  • 公司如何注册网站东莞网站建设方案外包
  • wordpress seo怎么写网站seo推广优化
  • 外文网站搭建公司广东seo点击排名软件哪里好
  • 电脑网站生成手机网站新品上市怎么推广词
  • wordpress深度修改宁波受欢迎全网seo优化
  • 医院网站怎么做优化排名靠前软件开发网
  • 如何做网站产品图片近几天发生的新闻大事
  • 哪个做简历的网站比较好国内好的seo
  • 没有做icp备案的网站五合一网站建设
  • 专做正品 网站百度推广账号怎么注册
  • php+mysql网站开发全程实例 下载嘉兴seo外包公司
  • 专门做爬虫的网站不错宁波seo公司
  • 外卖小程序源码百度关键词优化排名技巧
  • 网站建设及第三方支付百度seo运营工作内容