飙血推荐
  • HTML教程
  • MySQL教程
  • JavaScript基础教程
  • php入门教程
  • JavaScript正则表达式运用
  • Excel函数教程
  • UEditor使用文档
  • AngularJS教程
  • ThinkPHP5.0教程

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

时间:2021-12-21  作者:gpjvm  

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

  

 1  @Bean
 2     public Docket creatRestApi(){
 3         return new Docket(域名GER_2)
 4                 .apiInfo(apiInfo())
 5                 .select()
 6                 //关键语句
 7                 .apis(域名Package("域名.controller")
 8                 )
 9                 .paths(域名())
10                 .build();
11     }

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

 1  @Bean
 2     public Docket creatRestApi(){
 3         return new Docket(域名GER_2)
 4                 .apiInfo(apiInfo())
 5                 .select()
 6                 //关键语句
 7                 .apis(域名ClassAnnotation(域名s)
 8                 )
 9                 .paths(域名())
10                 .build();
11     }

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

 1 @Bean
 2     public Docket creatRestApi(){
 3         return new Docket(域名GER_2)
 4                 .apiInfo(apiInfo())
 5                 .select()
 6                 //关键语句
 7                 .apis(域名MethodAnnotation(域名s)
 8                 )
 9                 .paths(域名())
10                 .build();
11     }

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

             

 1  @Bean
 2     public Docket creatRestApi(){
 3         return new Docket(域名GER_2)
 4                 .apiInfo(apiInfo())
 5                 .select()
 6                 .apis(域名(域名Package("域名.controller"),
 7                         域名Package("域名.域名roller"),
 8                         域名Package("域名域名roller"))
 9                 )
10                 .paths(域名())
11                 .build();
12         
13     }

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

 <!-- guava -->
        <dependency>
            <groupId>域名a</groupId>
            <artifactId>guava</artifactId>
            <version>23.0</version>
        </dependency>

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

 

标签:编程
湘ICP备14001474号-3  投诉建议:234161800@qq.com   部分内容来源于网络,如有侵权,请联系删除。