Swagger如何匹配多个Controller类或者目录

简介: Swagger如何匹配多个Controller类或者目录

提示:方法四或许是你们需要的方法!!!

 

方法一(最普通的方式):匹配一个controller目录下的所有controller类。


1 @Bean

2     public Docket creatRestApi(){

3         returnnew Docket(DocumentationType.SWAGGER_2)

4                .apiInfo(apiInfo())

5                .select()

6                 //关键语句

7                 .apis(RequestHandlerSelectors.basePackage("com.example.demo.controller")

8                )

9                .paths(PathSelectors.any())

10                .build();

11     }

 

方法二匹配有指定注解的类。

1 @Bean

2     public Docket creatRestApi(){

3         returnnew Docket(DocumentationType.SWAGGER_2)

4                .apiInfo(apiInfo())

5                .select()

6                 //关键语句

7                 .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)

8                )

9                .paths(PathSelectors.any())

10                .build();

11     }

 

方法三匹配有指定注解的方法。

1@Bean

2     public Docket creatRestApi(){

3         returnnew Docket(DocumentationType.SWAGGER_2)

4                .apiInfo(apiInfo())

5                .select()

6                 //关键语句

7                 .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)

8                )

9                .paths(PathSelectors.any())

10                .build();

11     }

 

方法四我觉得是最重要的方法(强烈推荐!!!!):可以匹配多个controller包(多个controller包不在同一级)

           

1 @Bean

2     public Docket creatRestApi(){

3         returnnew Docket(DocumentationType.SWAGGER_2)

4                .apiInfo(apiInfo())

5                .select()       .apis(Predicates.or(RequestHandlerSelectors.basePackage("com.example.demo.controller"),

7                         RequestHandlerSelectors.basePackage("com.example.demo.gp.controller"),

8                         RequestHandlerSelectors.basePackage("com.gp.callback.controller"))

9                )

10                .paths(PathSelectors.any())

11                .build();

12        

13     }

如果上面的Predicates类报红的话,pom文件导入jar包

<!-- guava -->

       <dependency>

           <groupId>com.google.guava</groupId>

           <artifactId>guava</artifactId>

           <version>23.0</version>

       </dependency>

 

总结:相比四种方法,如果项目中只有一个controller包的话,直接使用方法一就可以了,如果项目中有多个controller包,那么我建议使用方法四。

 

 

相关文章
C# .net webapi使用swagger时显示controller注释
C# .net webapi使用swagger时显示controller注释
231 0
C# .net webapi使用swagger时显示controller注释
C# .net webapi使用swagger时显示controller注释
410 0
|
SQL 前端开发 Java
Swagger直接返回MybatisPlus的Page类文档不展开显示问题剖析
Swagger直接返回MybatisPlus的Page类文档不展开显示问题剖析
510 0
Swagger直接返回MybatisPlus的Page类文档不展开显示问题剖析
Swagger2Config类内容编写
本文讲解Swagger2Config类内容编写。
168 0
|
5月前
|
数据可视化 Java API
Spring Boot与Swagger的集成
Spring Boot与Swagger的集成
|
5月前
|
Java API 开发者
在Spring Boot中集成Swagger API文档
在Spring Boot中集成Swagger API文档
|
2月前
|
SQL JSON Java
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
这篇文章介绍了如何在Spring Boot项目中整合MyBatis和PageHelper进行分页操作,并且集成Swagger2来生成API文档,同时定义了统一的数据返回格式和请求模块。
58 1
mybatis使用三:springboot整合mybatis,使用PageHelper 进行分页操作,并整合swagger2。使用正规的开发模式:定义统一的数据返回格式和请求模块
|
2月前
|
前端开发 Java 程序员
springboot 学习十五:Spring Boot 优雅的集成Swagger2、Knife4j
这篇文章是关于如何在Spring Boot项目中集成Swagger2和Knife4j来生成和美化API接口文档的详细教程。
112 1
|
3月前
|
前端开发 Java Spring
【非降版本解决】高版本Spring boot Swagger 报错解决方案
【非降版本解决】高版本Spring boot Swagger 报错解决方案
|
3月前
|
Java Spring
springboot 集成 swagger 2.x 和 3.0 以及 Failed to start bean ‘documentationPluginsBootstrapper‘问题的解决
本文介绍了如何在Spring Boot项目中集成Swagger 2.x和3.0版本,并提供了解决Swagger在Spring Boot中启动失败问题“Failed to start bean ‘documentationPluginsBootstrapper’; nested exception is java.lang.NullPointerEx”的方法,包括配置yml文件和Spring Boot版本的降级。
springboot 集成 swagger 2.x 和 3.0 以及 Failed to start bean ‘documentationPluginsBootstrapper‘问题的解决