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,基本上都是这个问题导致的.具体根据自己情况修改

你可能感兴趣的:(SpringBoot 集成Swaager2 访问404)