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币余额
我的收藏
我的下载
下载帮助


最新资源
- 大连理工大学2021年9月《楼宇自动化》作业考核试题及答案参考7.docx
- 万家乐电子商务运营策划书文章讲解材料.doc
- 基于软件无线电的16-QAM调制解调的研究的开题报告.docx
- 推荐软件办公家具项目可行性研究报告技术工艺设备选型财务概算厂区规划标准方案设计.doc
- MySql学习笔记.doc
- 电器控制和PLC技术 PPT.ppt
- 单片机电子教案公开课一等奖优质课大赛微课获奖课件.pptx
- 数据挖掘在医院信息化管理中的应用探讨.docx
- 2022年5G+物联网行业发展报告.pptx
- 第1章微型计算机及其体系结构教学提纲.ppt
- [法律资料]法律法规及道路交通信号一22标志标线备课讲稿.ppt
- 网站规划与程式设计讲课资料.ppt
- 软件开发合同范本(详细)研究报告.doc
- 项目二简单阶梯轴零件的编程与加工 PPT.ppt
- 物联网应用技术专业-说专业 ppt.ppt
- 基于单片机的LED点阵显示屏的设计(1).doc


