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

带分期功能的网站建设有创意的文创产品

带分期功能的网站建设,有创意的文创产品,哪个网站代做ppt便宜,wordpress页头图片比例在 Spring Boot 项目中,WebMvcConfigurer 接口是开发者扩展和定制 Spring MVC 行为的核心工具。通过实现该接口并重写其方法,开发者可以灵活配置路由规则、拦截器、消息转换器、跨域策略等 MVC 相关功能。与直接继承 WebMvcConfigurationSupport 不同&am…

在 Spring Boot 项目中,WebMvcConfigurer 接口是开发者扩展和定制 Spring MVC 行为的核心工具。通过实现该接口并重写其方法,开发者可以灵活配置路由规则、拦截器、消息转换器、跨域策略等 MVC 相关功能。与直接继承 WebMvcConfigurationSupport 不同,WebMvcConfigurer 的设计更加友好,允许开发者按需覆盖默认配置而无需完全接管 MVC 配置,从而避免破坏 Spring Boot 的自动配置机制。

一、WebMvcConfigurer 的核心作用

1. 定制路由规则

通过重写 configurePathMatch 方法,开发者可以调整 URL 路径的匹配规则。例如:
统一添加 API 前缀:为不同模块的 Controller 动态添加公共前缀(如 /api/v1)。
路径匹配策略:设置是否启用后缀匹配、尾斜杠忽略等。

@Override
public void configurePathMatch(PathMatchConfigurer configurer) {configurer.addPathPrefix("/api", c -> c.isAnnotationPresent(RestController.class)).setUseTrailingSlashMatch(false); // 禁用尾斜杠匹配
}

2. 添加拦截器(Interceptor)

通过 addInterceptors 方法注册自定义拦截器,实现以下功能:
权限验证:检查用户登录状态或权限。
日志记录:记录请求耗时、参数等信息。
限流与防重放:防止重复请求或高频调用。

@Override
public void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(new AuthInterceptor()).addPathPatterns("/api/**")   // 拦截路径.excludePathPatterns("/api/login"); // 排除路径
}

3. 跨域请求配置(CORS)

通过 addCorsMappings 方法配置全局跨域规则,解决前端跨域问题:

@Override
public void addCorsMappings(CorsRegistry registry) {registry.addMapping("/api/**")    // 允许跨域的路径.allowedOrigins("https://example.com") // 允许的源.allowedMethods("GET", "POST");        // 允许的 HTTP 方法
}

4. 消息转换器(Message Converter)

通过 configureMessageConverters 方法定制 JSON、XML 等数据格式的序列化规则。例如:
• 替换默认的 Jackson 配置,设置日期格式。
• 添加 Protobuf 或自定义格式的支持。

@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder().indentOutput(true).dateFormat(new SimpleDateFormat("yyyy-MM-dd"));converters.add(new MappingJackson2HttpMessageConverter(builder.build()));
}

5. 视图控制与静态资源

通过 addViewControllersaddResourceHandlers 方法:
视图跳转:将特定 URL 映射到静态页面。
静态资源路径:自定义图片、CSS、JS 等资源的访问路径。

@Override
public void addViewControllers(ViewControllerRegistry registry) {registry.addViewController("/home").setViewName("home.html");
}@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
}

二、WebMvcConfigurer 的优势

1. 非侵入式扩展

• 通过实现接口的方式按需覆盖配置,无需继承 WebMvcConfigurationSupport,保留 Spring Boot 的默认行为(如自动注册的 ConverterFormatter)。

2. 模块化配置

• 允许多个配置类实现 WebMvcConfigurer,每个类专注于单一职责(如安全配置、API 版本控制)。

3. 与自动配置兼容

• 在 Spring Boot 2.x 及以上版本中,优先使用 WebMvcConfigurer 而非已弃用的 WebMvcConfigurerAdapter,确保与自动配置机制协同工作。


三、典型应用场景

1. 多版本 API 前缀管理

为不同版本的 API 添加统一前缀(如 /v1/user/v2/user),避免 Controller 类中硬编码路径:

@Override
public void configurePathMatch(PathMatchConfigurer configurer) {configurer.addPathPrefix("/v1", c -> c.getPackage().getName().contains(".v1."));
}

2. 全局异常处理

结合 @ControllerAdvice 定义统一异常处理逻辑,通过拦截器记录异常信息。

3. 微服务中的安全拦截

在网关或业务服务中,通过拦截器验证 JWT Token 或鉴权头信息。


四、实现注意事项

  1. 避免过度配置
    仅覆盖需要修改的方法,保留其他默认行为。

  2. 配置类需被 Spring 管理
    确保配置类被 @Configuration@Component 注解标记。

  3. 多个配置类的执行顺序
    使用 @Order 注解控制多个 WebMvcConfigurer 实现类的加载顺序。


五、总结

WebMvcConfigurer 是 Spring Boot 中定制 MVC 行为的“瑞士军刀”,它通过细粒度的配置方法,帮助开发者在不破坏默认机制的前提下,灵活扩展功能。无论是统一路由规则、增强安全拦截,还是优化数据传输格式,理解并熟练使用该接口,都能显著提升项目的可维护性和扩展性。


文章转载自:

http://06wmKqbf.qcfcz.cn
http://5cWDzO5I.qcfcz.cn
http://wFyAeRnO.qcfcz.cn
http://VcVxWmnm.qcfcz.cn
http://9lpQzjXn.qcfcz.cn
http://C0Uttw9J.qcfcz.cn
http://IxNDLovv.qcfcz.cn
http://JWLXbkQM.qcfcz.cn
http://InNnfafY.qcfcz.cn
http://Arr1Om2h.qcfcz.cn
http://SiFCDhws.qcfcz.cn
http://Dom3xhKg.qcfcz.cn
http://XEsPpbGc.qcfcz.cn
http://nmlLfRvv.qcfcz.cn
http://NWf2gIJm.qcfcz.cn
http://Fz0VPXaF.qcfcz.cn
http://OAO6druf.qcfcz.cn
http://WeSmcYv0.qcfcz.cn
http://IWkgeQTX.qcfcz.cn
http://sNtpbZJz.qcfcz.cn
http://h0N6WrJG.qcfcz.cn
http://nN1DUwWs.qcfcz.cn
http://Ges32z9B.qcfcz.cn
http://QLY4TLEu.qcfcz.cn
http://poAAwN7y.qcfcz.cn
http://Zh0D1Uj5.qcfcz.cn
http://vi1NCT8D.qcfcz.cn
http://njM3MyDU.qcfcz.cn
http://O95u8nHF.qcfcz.cn
http://hvugKry7.qcfcz.cn
http://www.dtcms.com/wzjs/624318.html

相关文章:

  • 平谷网站建设域名注册管理中心网站
  • 淘宝网站框架手把手教你建网站
  • 小白怎么做网站搬家教程网站开发待遇
  • c++语言网站建设安泽网站建设
  • 没有网站没有推广如何做外贸素材网站会员
  • 西宁圆井模板我自己做的网站河南省工程建设信息官方网站
  • 小白如何建网站wordpress手机版切换
  • 郑州正规的网站建设价格天津谁做网站
  • 乐清市网站建设设计泰州网站建设
  • 做制作网站找啥工作网站建设征求意见表
  • wordpress查看ip帐号密码知乎关键词排名优化
  • ppt模板下载素材网站锤子简历模板免费
  • 网站维护 设计wordpress 文章字符数
  • 济宁网站建设只要500元wordpress下拉
  • 有没有悬赏做ppt的网站免费cms建站系统有哪些
  • 超越时空网上书城网站建设方案网站下方链接图标怎么做
  • 江门网站开发公司ckeditor 转wordpress
  • 程序员用来做笔记的网站祁阳网页定制
  • 常州网站建设套餐网络产品代理加盟
  • 云速网站建设微信推广平台怎么找
  • 太仓智能网站建设在线做名片做海报网站
  • 做背景视频哪个网站好ui设计师导航网
  • 营销型网站建设818gx虚拟主机与云服务器的区别
  • 如何查询网站备案进度怎么在电脑上自己做网站吗
  • wordpress建站双语小学毕业个人主页设计
  • 电商网站建设考试制作网页的网站费用属于资本性支出吗
  • 企业网站报告册设计模板吃什么补肾气效果好
  • 杭州专业做网站wordpress首页缓存自动清空
  • 展示网站建设的ppt网站源码下载教程
  • 网站自己怎么做的深圳专业做网站的公司