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包,那么我建议使用方法四。

 

 

相关文章
|
12月前
|
C#
C# .net webapi使用swagger时显示controller注释
C# .net webapi使用swagger时显示controller注释
202 0
C# .net webapi使用swagger时显示controller注释
C# .net webapi使用swagger时显示controller注释
387 0
|
SQL 前端开发 Java
Swagger直接返回MybatisPlus的Page类文档不展开显示问题剖析
Swagger直接返回MybatisPlus的Page类文档不展开显示问题剖析
487 0
Swagger直接返回MybatisPlus的Page类文档不展开显示问题剖析
Swagger2Config类内容编写
本文讲解Swagger2Config类内容编写。
160 0
Java Swagger的注释类是怎么被调用到的
Java Swagger的注释类是怎么被调用到的
Java Swagger的注释类是怎么被调用到的
|
3月前
|
数据可视化 Java API
Spring Boot与Swagger的集成
Spring Boot与Swagger的集成
|
3月前
|
Java API 开发者
在Spring Boot中集成Swagger API文档
在Spring Boot中集成Swagger API文档
|
8天前
|
前端开发 Java Spring
【非降版本解决】高版本Spring boot Swagger 报错解决方案
【非降版本解决】高版本Spring boot Swagger 报错解决方案
|
7天前
|
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‘问题的解决
|
2月前
|
Java API Spring
springboot集成swagger
这篇文章介绍了如何在Spring Boot项目中集成Swagger 2.10.0来生成API文档,包括添加依赖、编写配置类、创建接口文档,并使用Knife4j美化Swagger界面。