Spring Boot引入swagger-ui 后swagger-ui.html无法访问404的问题
主要介绍了Spring Boot引入swagger-ui 后swagger-ui.html无法访问404的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 在Spring Boot应用中,Swagger是一个强大的工具,它可以帮助开发者生成、描述、测试和展示RESTful API。Swagger UI是Swagger的一部分,提供了一个用户友好的界面,允许用户交互式地浏览和测试API。然而,在Spring Boot中引入Swagger UI时,有时会遇到访问`swagger-ui.html`返回404错误的问题。以下是对这个问题的详细分析和解决方案: 要引入Swagger的相关依赖,需要在项目的`pom.xml`文件中添加Springfox的`springfox-swagger2`和`springfox-swagger-ui`两个依赖项,如下所示: ```xml <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency> ``` 接下来,创建一个配置类`Swagger2Config`,使用`@EnableSwagger2`注解开启Swagger功能,并通过`@Bean`方法定义一个Docket实例,来指定需要扫描的API路径: ```java @Configuration @EnableSwagger2 @Profile("swagger") @ComponentScan("xxx.controller") public class Swagger2Config { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .enable(true) .select() .apis(RequestHandlerSelectors.basePackage("xxx.controller")) .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("XXX Rest Server") .description("XXX Rest接口") .contact(new Contact("contract", "url", "email")) .version("1.0") .build(); } } ``` 当访问`swagger-ui.html`出现404错误时,通常是因为Spring Boot的静态资源处理配置问题。在某些情况下,如果项目中存在自定义的`WebMvcConfigurer`,可能会覆盖默认的静态资源处理,导致Swagger UI的资源找不到。为了解决这个问题,可以在`WebMvcConfig`类中覆盖`addResourceHandlers`方法,显式地添加Swagger UI的资源路径: ```java @Configuration public class WebMvcConfig implements WebMvcConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/**").addResourceLocations("classpath:/static/"); registry.addResourceHandler("swagger-ui.html") .addResourceLocations("classpath:/META-INF/resources/"); registry.addResourceHandler("/webjars/**") .addResourceLocations("classpath:/META-INF/resources/webjars/"); } } ``` 这样,Swagger UI的静态资源就可以被正确地加载,从而可以正常访问`swagger-ui.html`。 除此之外,为了使前端更好地利用Swagger生成的API文档,可以考虑使用前端库(如Vue.js的typescript版本)来自动化生成调用API的代码。例如,可以参考文章中提到的开源npm库,以便前端使用axios更方便地调用API。 总结来说,解决Spring Boot引入Swagger UI后`swagger-ui.html`无法访问的问题,关键在于正确配置Swagger的依赖和自定义`WebMvcConfigurer`以处理Swagger UI的静态资源。同时,为提升开发效率,前端可以利用相关工具自动根据Swagger生成的API文档构建调用代码。通过这些步骤,可以确保Swagger在Spring Boot项目中的顺畅使用,提高API的开发和测试效率。




























- 粉丝: 7
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 路径规划领域中跳点搜索算法及其改进版本的技术解析与应用
- DSP驱动的数字电源系统:基于C2000主控的300W Buck-Boost双向变换器设计方案与实现
- COMSOL光学模拟:高斯光束通过偏振棱镜与反射面后的光强质心偏移研究 (07月28日)
- 工业自动化中WINCC系统的水电气能源报表自动化管理及应用
- 格子玻尔兹曼LBM D3Q19方法在多孔介质渗流场求解与可视化的应用研究 · D3Q19 完整版
- 基于Simulink的永磁同步电机滑模观测器无位置传感器控制仿真模型研究
- 基于Matlab的指纹识别系统设计:从特征提取到GUI实现
- VB工业自动化项目:27轴混合驱动与精准喷胶系统的实现及应用
- 电力系统仿真中变压器励磁涌流的Python建模与分析 Python
- PLC1200与Factory IO联机仿真的模拟工厂设计及其实现方法 · PLC编程
- 永磁同步电机PMSM负载状态估计与MATLABSimulink仿真模型研究
- 永磁同步电机PMSM的5+7次谐波注入与死区补偿技术:降低转矩脉动及电压补偿的PPT与Simulink模型说明
- Comsol燃料电池模型:等温和不等温仿真的研究与应用
- 永磁同步电机全速域无位置传感器控制的仿真研究:采用高频注入改进滑膜控制方法及PMSM矢量控制仿真 高频注入 高级版
- 基于灰狼优化算法的光伏MPPT控制策略:局部遮阴环境下的阴影动态与应对措施
- 离线DP动态规划节能速度规划与Carsim联合仿真验证:电动汽车高效能解决方案 - 动态规划


