springBoot整合swagger-bootstrap-ui报404错误解决

14 篇文章 0 订阅

SpringBoot 整合swagger-bootstrap-ui出现404错误

描述
正常情况下,项目引入swagger-bootstrap-ui依赖(如下)

<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>swagger-bootstrap-ui</artifactId>
    <version>1.9.1</version>
</dependency>

进行配置:

@Configuration
@EnableSwagger2
public class SwaggerConfig {

    /**
     * 初始化创建Swagger Api
     */
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                // 详细信息定制
                .apiInfo(apiInfo())
                .select()
                // 指定当前包路径
                .apis(RequestHandlerSelectors.basePackage("com.xxx"))
                // 扫描所有
                .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build().groupName("项目名");
    }

    /**
     * 添加摘要信息
     */
    private ApiInfo apiInfo() {
        // 用ApiInfoBuilder进行定制
        return new ApiInfoBuilder()
                .title("项目标题")
                .description("描述:接口文档")
                .contact(new Contact("Fame-springBoot-Swagger2", null, null))
                .version("版本号: 1.0")
                .build();
    }
}

引入依赖进行配置,正常项目是没有问题的,都可以访问,但是奇怪的是有一个项目不论如何配置就是无法展示…

排查1:
其他项目都没有问题,唯独其中一个无法展示,所以,swagger引用和配置应该没有问题(可以排除)

排查2
查看拦截器配置,是否是拦截器配置不生效(果然[破涕为笑](定位))

和我上一篇文章中提到的拦截器冲突一样,感兴趣的可以查看记录SpringBoot中拦截器冲突导致不生效的原因

不多说在继承WebMvcConfigurer的拦截器中重写addResourceHandlers,代码如下:

@Override
	public void addResourceHandlers(ResourceHandlerRegistry registry) {
/**注意这个配置,如果配置swagger-bootstrap-ui的位置不对,也是出现404的一个原因*/		registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");
		registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
		registry.addResourceHandler("/swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
		registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
	}

[文末小彩蛋] 1

至此,404bug修复,可以访问localhost:port/doc.html,完美.


  1. 发布还遇到一个小问题:发布出现,需要登录认证,也是拦截器的问题,需要在拦截器中放行该链接,修改的地方是找到代码中继承HandlerInterceptorAdapter的类,在preHandle方法中将该地址放心即可. ↩︎

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱丫爱

你的鼓励是我创作最大的动力来源

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值