Swagger整合SpringBoot报错404以及@EnableWebMvc无法访问静态资源文件

解决SpringBoot中Swagger界面404问题
本文介绍了解决在SpringBoot项目中配置Swagger后出现404错误的方法。通过创建配置项并实现WebMvcConfigurer接口,重写addResourceHandlers方法,映射静态资源路径,最终成功访问Swagger界面。

最近在写后台接口,是用springboot搭建的。
现在准备配置上Swagger作为接口文档。
当加好Swagger的配置项后,访问http://localhost:8080/swagger-ui.htm发现404~尴尬了。

后来才发现是@EnableWebMvc注解的问题,加了这个注解以后会导致静态资源路径无法访问
同样404的朋友可以试一试把这个注解给注释了,看能否进入Swagger界面。

我这里是重新对静态资源文件做了一个新的路径映射。
步骤:
1、创建一个配置项实现WebMvcConfigurer接口。
(ps:老版本的springboot是继承WebMvcConfigurationSupport类)

2、重写addResourceHandlers方法,映射资源路径。


/**
 * @Description: 使用了@EnableMvc以后,导致静态资源路径无法访问
 *               重新配置加上静态资源路径的映射
 * @CreateDate: 2020/7/3 11:04
 */
@Configuration
public class MvcStaticMappingConfig implements WebMvcConfigurer {


    /**
     * 设置静态资源路径的映射
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        // 解决静态资源无法访问
        registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");
        // 解决swagger无法访问
        registry.addResourceHandler("/swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
        // 解决swagger的js文件无法访问
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
    }


}

然后就能访问了~
在这里插入图片描述

### 解决Swagger3 API文档页面访问时报404错误的方法 对于Swagger3(也称为OpenAPI 3),如果遇到API文档页面访问时返回404错误的情况,通常是因为路径匹配策略未正确设置或是缺少必要的依赖项和配置。 #### 配置`application.yaml` 为了确保Spring Boot应用能够正确解析并提供Swagger UI资源文件,在`application.yaml`中应调整路径匹配策略为旧版的Ant风格: ```yaml spring: mvc: pathmatch: matching-strategy: ant_path_matcher ``` 此更改有助于兼容Swagger所需的静态资源加载方式[^2]。 #### 添加必要依赖 确认项目的构建工具配置文件(如Maven的`pom.xml`或Gradle的`build.gradle`)已引入了支持OpenAPI 3.x版本的相关依赖。例如,使用Springdoc-openapi来替代老式的swagger-springmvc库可以更好地适配新标准下的功能需求。 对于Maven项目而言,可以在`pom.xml`里加入如下片段: ```xml <dependency> <groupId>org.springdoc</groupId> <artifactId>springdoc-openapi-ui</artifactId> <version>1.6.14</version><!-- 版本号需根据实际情况选择 --> </dependency> ``` 而对于采用Gradle管理依赖关系的应用,则应在`build.gradle`内添加相应声明: ```groovy implementation 'org.springdoc:springdoc-openapi-ui:1.6.14' // 同样需要注意版本的选择 ``` 完成上述操作之后重新编译部署应用程序即可尝试再次访问Swagger界面。 #### 修改启动类注解 当使用SpringDoc OpenAPI时,并不需要显式地标注@EnableWebMvc这样的全局视图控制器启用标记;相反,只需保证主程序入口处存在@SpringBootApplication就足够了。至于具体的API描述信息则通过包扫描机制自动收集来自各个Controller上的元数据标签[@Api、@Operation等]。 因此,建议移除不必要的@EnableWebMvc以及过时的@EnableSwagger2装饰符,转而依靠默认行为让框架自行处理UI路由映射逻辑。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值