springboot集成swagger2访问路径404
来源:网络收集 点击: 时间:2024-05-05首先添加如下依赖,其中版本号为2.2.2

新增swagger配置类,注意要加上注解@Configuration和@EnableSwagger2

集成之后可以正常启动,但是访问路径,如:localhost:8888/swagger-ui.html报错404

找到maven依赖的springfox-swagger-ui-2.2.2.jar,将目录展开,会发现swagger-ui.html在META-INF/resources下面,应该是资源路径不对的原因导致了无法访问

第一种解决方案:
通过配置文件解决,添加如下配置:
spring.mvc.static-path-pattern: /**
spring.resources.static-locations: classpath:/static/,classpath:/META-INF/resources/,classpath:/META-INF/resources/webjars/
保存,重启,访问正常

第二种解决方案,通过代码配置解决:
新建一个配置类(加上注解@Configuration),继承WebMvcConfigurationSupport类,并重写其中的方法
@Override
protected 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/);
}
保存,重启,访问正常

2.2.2版本的swagger出现过打开非常慢的情况,用F12打开后发现swagger2在疯狂加载api-docs,导致的非常慢,最后是换了一个版本解决了,如果出现这个问题,可以考虑换成2.7.0,本人就是换成了这个版本(2.7.0版本还会显示每个controller中文注解,2.2.2没有显示)


访问过程中如果出现Unable to infer base url,有些也是因为版本原因造成的,可优先考虑换版本
SPRINGBOOTSWAGGER2MAVEN版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_678011.html