zoukankan      html  css  js  c++  java
  • springboot集成swagger2及需要注意的坑

    springboot集成swagger2及需要注意的坑

    1、springboot集成swagger2

    1.1 swagger的ui界面效果--简洁好用

    1.2 pom文件中添加swagger依赖

           <!-- swagger2 -->
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
                <version>2.9.2</version>
            </dependency>
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger-ui</artifactId>
                <version>2.9.2</version>
            </dependency>
    

    1.3 编写相关配置类

    @Configuration
    @EnableSwagger2
    public class SwaggerConfig extends WebMvcConfigurationSupport {
        @Bean
        public Docket createRestApi() {
            return new Docket(DocumentationType.SWAGGER_2)
                    .pathMapping("/")
                    .apiInfo(apiInfo())
                    .select()
                    .apis(RequestHandlerSelectors.basePackage("com.jerry.first.controller"))
                    .paths(PathSelectors.any()).build();
        }
    
        /**
         * 配置在线文档的基本信息
         * @return
         */
        public ApiInfo apiInfo(){
            return new ApiInfoBuilder()
                    .title("参数校验和统一异常处理Demo")
                    .description("用来演示参数校验和统一异常处理")
                    .termsOfServiceUrl("rudecrab.com")
                    .contact(new Contact("RudeCrab", "", "rudecrab@foxmail.com"))
                    .version("1.0")
                    .build();
        }
    
    }
    

    1.4 这样swagger2与springboot就集成完毕了。

    通过浏览器访问路径: http://localhost:8080/swagger-ui.html ,若顺利,就会出现文章开始的时候的这种界面。

    如果没有出现swagger的界面,此时可以看到控制台会报出 No mapping for GET /swagger-ui.html的错误,这时大概率时由于我们的项目中的其他自定义的配置类集成了WebMvcConfigurationSupport类,导致swagger的相应配置失效。。。

    解决办法:在swagger配置文件下重写WebMvcConfigurationSupport类的addResourceHandlers方法

    @Configuration
    @EnableSwagger2
    public class SwaggerConfig extends WebMvcConfigurationSupport {
        @Bean
        public Docket createRestApi() {
            return new Docket(DocumentationType.SWAGGER_2)
                    .pathMapping("/")
                    .apiInfo(apiInfo())
                    .select()
                    .apis(RequestHandlerSelectors.basePackage("com.jerry.first.controller"))
                    .paths(PathSelectors.any()).build();
        }
    
        /**
         * 配置在线文档的基本信息
         * @return
         */
        public ApiInfo apiInfo(){
            return new ApiInfoBuilder()
                    .title("参数校验和统一异常处理Demo")
                    .description("用来演示参数校验和统一异常处理")
                    .termsOfServiceUrl("rudecrab.com")
                    .contact(new Contact("RudeCrab", "", "rudecrab@foxmail.com"))
                    .version("1.0")
                    .build();
        }
        
     *************** 重写addResourceHandlers ************************************
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/**").addResourceLocations(
                    "classpath:/static/");
            registry.addResourceHandler("swagger-ui.html").addResourceLocations(
                    "classpath:/META-INF/resources/");
            registry.addResourceHandler("/webjars/**").addResourceLocations(
                    "classpath:/META-INF/resources/webjars/");
            super.addResourceHandlers(registry);
        }
     }
    

    再重启项目,问题解决。

  • 相关阅读:
    盒子垂直水平居中
    Sahi (2) —— https/SSL配置(102 Tutorial)
    Sahi (1) —— 快速入门(101 Tutorial)
    组织分析(1)——介绍
    Java Servlet (1) —— Filter过滤请求与响应
    CAS (8) —— Mac下配置CAS到JBoss EAP 6.4(6.x)的Standalone模式(服务端)
    JBoss Wildfly (1) —— 7.2.0.Final编译
    CAS (7) —— Mac下配置CAS 4.x的JPATicketRegistry(服务端)
    CAS (6) —— Nginx代理模式下浏览器访问CAS服务器网络顺序图详解
    CAS (5) —— Nginx代理模式下浏览器访问CAS服务器配置详解
  • 原文地址:https://www.cnblogs.com/niew/p/14514921.html
Copyright © 2011-2022 走看看