踩坑
使用Springdoc-OpenAPI3.0 或者 knife4j-openapi3-spring-boot-starter
项目中带有继承WebMvcConfigurationSupport
的配置类,如下:
@Configuration
public class WebMvcConfiguration extends WebMvcConfigurationSupport {}
浏览器访问报错404,但是http://localhost:8080/api-docs能访问
尝试把这个配置删掉,重新启动项目,访问 Swaggger UI,成功访问。这个配置应该是导致没有加载 swagger-ui 资源的问题所在,所以报 404
解决方法:在配置类中添加以下代码,手动进行静态资源资源映射
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/swagger-ui/**").addResourceLocations("classpath:/META-INF/resources/webjars/swagger-ui/4.18.2/");
}
其中4.18.2
是swagger-ui的版本,在maven管理依赖中查看
在输入框中填写配置的元数据路径即可
解决方法二:
继承的WebMvcConfigurationSupport改成
实现WebMvcConfigurer接口
@Configuration
public class WebMvcConfiguration implements WebMvcConfigurer{}
个人推荐不用WebMvcConfigurationSupport或者WebMvcConfigurer,如果要用,可能就得多了解源码