• SpringBoot多模块配置swagger2失败


    在项目结构中,我将SwaggerConfig文件写在common模块,其他模块通过pom引入这个模块,swagger的版本如下:

     <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>
    

    但是启动项目使出现如下错误:

    The following method did not exist: springfox.documentation.builders.RequestHandlerSelectors.any()Lcom/google/common/base/Predicate;

    在上网搜查和对比别人的代码后,经验证以下的方案有效:
    将依赖改为:

    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-boot-starter</artifactId>
        <version>3.0.0</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>3.0.0</version>
    </dependency>
    

    配置文件改为:

    @Configuration
    @EnableSwagger2
    @EnableWebMvc
    public class SwaggerConfig {
    
        @Bean
        public Docket createRestApi() {
            // 添加请求参数,token请求头部参数传入后端
    //        ParameterBuilder parameterBuilder = new ParameterBuilder();
    //        List<Parameter> parameters = new ArrayList<Parameter>();
    //        parameterBuilder.name("token").description("token")
    //                .modelRef(new ModelRef("string")).parameterType("header").required(false).build();
    //        parameters.add(parameterBuilder.build());
    //        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
    //                .apis(RequestHandlerSelectors.any()).paths(PathSelectors.any())
    //                .build().globalOperationParameters(parameters);
            // 不加参数
            return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())
                    .select()
                    .apis(RequestHandlerSelectors.any())
                    .paths(PathSelectors.any()).build();
        }
    
        private ApiInfo apiInfo() {
            return new ApiInfoBuilder()
                    .title("系统 API 文档")
                    .description("This is a restful api document of smart watter.")
                    .version("1.0")
                    .build();
        }
    }
    

    最后要注意这个依赖包的swagger网页路径发生了变化:
    http://localhost:8095/swagger-ui/index.html

  • 相关阅读:
    XPath使用示例
    CSS3中的弹性布局——"em"的用法
    Sublime Text3快捷键实用总结
    学习笔记——关于HTML(含HTML5)的块级元素和行级(内联)元素总结
    JavaScript中的伪数组理解
    深入理解浏览器兼容性模式
    javascript 中使用instanceof需要注意的一点
    用人工智能学习,凡亿推出PCB问题解答智能搜索机器人:pcb助手
    Altium中坐标的导出及利用坐标快速布局
    Altium中Logo的导入方法及大小调整
  • 原文地址:https://www.cnblogs.com/wuu02/p/16093937.html
Copyright © 2020-2023  润新知