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

  

 1  @Bean
2 public Docket creatRestApi(){
3 return new 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 return new 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 return new 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 return new Docket(DocumentationType.SWAGGER_2)
4 .apiInfo(apiInfo())
5 .select()
6 .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包,那么我建议使用方法四。

Swagger如何匹配多个Controller类或者目录的更多相关文章

  1. springMVC基础controller类

    此文章是基于 搭建SpringMVC+Spring+Hibernate平台 功能:设置请求.响应对象:session.cookie操作:ajax访问返回json数据: 创建springMVC基础con ...

  2. 非Controller类无法使用Service bean解决方案

      尝试方案: 1 在Spring的配置文件springmvc.xml中,增加扫描项base-package="zxs.ssm.util",增加你需要使用service的类所在的包 ...

  3. spring mvc 的Controller类默认Scope是单例(singleton)的

    使用Spring MVC有一段时间了,之前一直使用Struts2,在struts2中action都是原型(prototype)的, 说是因为线程安全问题,对于Spring MVC中bean默认都是(s ...

  4. PureMVC(JS版)源码解析(十):Controller类

          这篇博客我们继续讲解PureMVC的三大核心类(View/Controller/Model)——Controller类.根据PureMVC模块设计,Controller类保存所有的Comm ...

  5. mvc Controller类介绍

    1.Controller类 i.Controller必须为公开类: ii.必须以Controller结尾: iii.继承Controller基类或实现IController接口的类: iv.类中必须包 ...

  6. Thinkphp5.0 在自己定义一个公共方法的控制器并且继承了Controller类的时候报错

    在建立网站的时候,你通常想着把一些共有的方法提取出来,放入一个控制器内,如果你是将业务逻辑写入了构造函数里面,那么就得注意了. 在thinkphp5.0当中,有一个初始化的方法,类似于构造函数,那就是 ...

  7. @Controller 类中初始化问题解决办法

    在Controller类中常常遇到有些参数需要初始化,甚至有些只允许初始化一次,而Controller类不像servelet类可以调用init()函数进行初始化,这里想到的办法是设置标记值,让初始化部 ...

  8. ThinkPHP子类继承Controller类的注意事项

    在实际的开发中,往往有很多子类都继承自同一个父类,然后该父类再继承自框架内置类的需求. 比如: class Init extends Controller{...} class son1 extend ...

  9. 以前写SpringMVC的时候,如果需要访问一个页面,必须要写Controller类,然后再写一个方法跳转到页面,感觉好麻烦,其实重写WebMvcConfigurerAdapter中的addViewControllers方法即可达到效果了

    以前写SpringMVC的时候,如果需要访问一个页面,必须要写Controller类,然后再写一个方法跳转到页面,感觉好麻烦,其实重写WebMvcConfigurerAdapter中的addViewC ...

随机推荐

  1. springboot和mybatis集成

    springboot和mybatis集成 pom  <?xml version="1.0" encoding="UTF-8"?> <proje ...

  2. SubsamplingScaleImageView 源码解析

    一开始没打算分析 SubsamplingScaleImageView 这个开源的图片浏览器的,因为这个库在我们 App 中使用了,觉得自己对这个库还是比较熟悉的,结果某天再看看到源码介绍的时候,才发现 ...

  3. idea Error: java: OutOfMemoryError: insufficient memory 的处理

    idea Error: java: OutOfMemoryError: insufficient memory处理 在更新项目代码或者运行项目时报错 OutOfMemoryError: insuffi ...

  4. CF708E Student's Camp

    麻麻我会做*3100的计数了,我出息了 考虑朴素DP我们怎么做呢. 设\(f_{i,l,r}\)为第\(i\)层选择\(l,r\)的依旧不倒的概率. \(q(l,r)\)表示经历了\(k\)天后,存活 ...

  5. NOIOL #2 爆零记

    没有假是真的爆零了,原因:万恶的文操.不管怎样写份题解吧. T1: 做题经历:看了下题发现:不是 edu 的原题吗?兴奋地拿出赛中写的程序搞上去. 大约比赛开始 30min 后开始发现 \(k\) 可 ...

  6. 洛谷 P6499 - [COCI2016-2017#2] Burza(状压 dp)

    题面传送门 一道挺有意思的思维题(?) 首先我们假设根节点深度为 \(0\),那么 Daniel 的目标显然就是堵住一些节点使得 Stjepan 不能移动到深度为 \(k\) 的节点,Stjepan ...

  7. mVISTA 多序列比对叶绿体基因组

    mVISTA可对2个或者多个DNA序列进行比较,可以对比对结果进行可视化. 详情请大力戳这里 0 输入文件说明 mVISTA 需要输入的文件有如下几类 必须文件 邮箱 fasta格式序列文件(或者GE ...

  8. 动态滑动登陆框-Html+Css+Js

    动态滑动登陆框 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <t ...

  9. tensorboard No dashboards are active for the current data set.

    修改一下启动命令时的路径 位置示例: 命令为   E:\PYTHON_PROJECT\testTF\inceptionV1_net\log>tensorboard --logdir=TEC4FN ...

  10. 生产调优4 HDFS-集群扩容及缩容(含服务器间数据均衡)

    目录 HDFS-集群扩容及缩容 添加白名单 配置白名单的步骤 二次配置白名单 增加新服务器 需求 环境准备 服役新节点具体步骤 问题1 服务器间数据均衡 问题2 105是怎么关联到集群的 服务器间数据 ...