SpringBoot 集成Swaager2 访问404

之前参照网上的教程在SpringBoot中集成swagger2,在线生成API文档.但是配置完成之后,
访问http://localhost:8080/swagger-ui.html无法访问,然后看控制台的异常信息,发现下面
信息:
2018-06-06 11:26:06.903 WARN org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/swagger-ui.html] in DispatcherServlet with name 'dispatcherServlet'
这是因为资源映射错误导致的.因为我处理全局404时设置了spring.mvc.throw-exception-if-no-handler-found=truespring.resources.add-mappings=false
导致swagger的资源映射有问题.所以解决办法就是手动添加资源映射.
我使用的是SpringBoot2.x的版本,代码如下:

@Configuration
public class WebConf extends WebMvcConfigurationSupport {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        //将所有/static/** 访问都映射到classpath:/static/ 目录下
        registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
        //swagger2
        registry.addResourceHandler("/swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
        super.addResourceHandlers(registry);
    }
}

如果是SpringBoot1.x的话,注意是继承WebMvcConfigurerAdapter
主要就是下面这两句:

registry.addResourceHandler("/swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");

其实如果访问404,基本上都是这个问题导致的.具体根据自己情况修改

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容