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

Knife4j文档的会被全局异常处理器拦截的问题解决

一、发现问题

在SpringBoot 3.4.5中,还有knife4j-openapi3的版本中,doc.html会被拦截器拦截

问题背景

介绍Knife4j文档的基本功能及其在API文档生成中的重要性。阐述全局异常处理器的概念及其在Spring Boot项目中的作用。提出Knife4j文档在某些情况下会被全局异常处理器拦截的问题。

问题分析

分析Knife4j文档被全局异常处理器拦截的原因。探讨全局异常处理器的配置方式及其对Knife4j文档的影响。讨论常见的异常处理策略及其对API文档生成的影响。

解决方案

提供解决Knife4j文档被全局异常处理器拦截的具体方法。介绍如何通过配置全局异常处理器来排除Knife4j文档的路径。讨论如何通过自定义异常处理逻辑来避免对Knife4j文档的干扰。

二、代码示例

1、在全局异常处理器加上@Hidden

/*** 全局异常处理器*/
@RestControllerAdvice
@Hidden
public class GlobalExceptionHandler {@ExceptionHandler(BusinessException.class)public BaseResponse<?> businessExceptionHandler(BusinessException e) {
//        log.error("BusinessException", e);return Result.error(e.getCode(), e.getMessage());}@ExceptionHandler(RuntimeException.class)public BaseResponse<?> runtimeExceptionHandler(RuntimeException e) {
//        log.error("RuntimeException", e);return Result.error(ErrorCode.SYSTEM_ERROR, "系统错误");}}

2、WebMVCConfig中设置拦截的路径,还有加上加上静态访问资源

@Configuration
@RequiredArgsConstructor
public class WebMvcConfig implements WebMvcConfigurer {private final AuthenticationInterceptor authenticationInterceptor;@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(this.authenticationInterceptor).excludePathPatterns(// Knife4j 文档相关"/doc.html/**",           // 文档页面"/webjars/**",            // 静态资源"/swagger-resources/**",  // Swagger 资源"/v3/api-docs/**",        // OpenAPI 规范端点"/favicon.ico"            // 网站图标).excludePathPatterns("/user/register/**","/user/login/**");}@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {//配置拦截器访问静态资源registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");registry.addResourceHandler("/favicon.ico").addResourceLocations("classpath:/META-INF/resources/");registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");}}

http://www.xdnf.cn/news/365797.html

相关文章:

  • Python MNE-Python 脑功能磁共振数据分析
  • IO-Link系列集线器(三格电子)
  • MySQL 安全架构:从渗透测试到合规审计
  • 对称加密以及非对称加密
  • 从零理解 RAG:检索增强生成的原理与优势
  • Linux系统Shell脚本之sed
  • 深度学习-161-Dify工具之对比使用工作流和聊天流生成图表可视化的html文件
  • css样式实现-新闻列表
  • MySQL相关查询
  • 在 MyBatis 中实现控制台输出 SQL 参数
  • htmlUnit和Selenium的区别以及使用BrowserMobProxy捕获网络请求
  • RoPE长度外推:外插内插
  • ResNet详解
  • 企业名录搜索软件靠谱吗 企业名录搜索软件怎么使用
  • LSTM的简单模型
  • git做commit信息时的校验
  • C++ —— 可变参数
  • D720201 PCIE 转USB HUB
  • 值拷贝、浅拷贝和深拷贝
  • 利用混合磁共振成像 - 显微镜纤维束成像技术描绘结构连接组|文献速递-深度学习医疗AI最新文献
  • DAY04:Vue.js 指令与事件处理深度解析之从基础到实战
  • 弹窗表单的使用,基于element-ui二次封装
  • 十三、基于大模型的在线搜索平台——整合function calling流程
  • 萤石无插件取流巡检组件,便捷支持多屏预览与回放
  • MCP(Model Context Protocol,模型上下文协议)
  • tcpdump 的用法
  • [sklearn] 特征工程
  • LeRobot 项目部署运行逻辑(五)——intelrealsense.py/configs.py
  • 【PostgreSQL】不开启归档模式,是否会影响主从库备份?
  • OrangePi Zero 3学习笔记(Android篇)4 - eudev编译(获取libudev.so)