提示:方法四或许是你们需要的方法!!!
方法一(最普通的方式):匹配一个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包,那么我建议使用方法四。