springboot-swagger:配置扫描接口
1 新建一个controller包,并在该包下编写一个HellorController
src/main/java/com/lv/controller/HelloController.java
package com.lv.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloController { @RequestMapping("/hello") public String hello(){ return "hello"; } }
2 修改swagger配置类,配置扫描接口方式
构建Docket时通过select()方法配置怎么扫描接口,我们采用了扫描包的方式并指定扫描了我们自己创建的controller包
src/main/java/com/lv/config/SwaggerConfig.java
package com.lv.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; import java.util.ArrayList; @Configuration @EnableSwagger2 //开启Swagger2 public class SwaggerConfig { //配置了Swagger的Docket的bean实例 @Bean public Docket docket(){ return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() //RequestHandlerSelectors 配置要扫描接口的方式 //basePackage 指定要扫描的包 .apis(RequestHandlerSelectors.basePackage("com.lv.controller")) .build(); } //配置swagger信息 : apiInfo private ApiInfo apiInfo(){ //作者信息 Contact contact = new Contact("工藤新一", "https://www.cnblogs.com/lv1024/", "1148397597@qq.com"); return new ApiInfo( "工藤新一的swaggerAPI文档", "心机之蛙一直摸你肚子", "v1.0", "https://www.cnblogs.com/lv1024/", contact, "Apache 2.0", "http://www.apache.org/licenses/LICENSE-2.0", new ArrayList<>()); } }
3 启动项目测试
显示的接口变成了我们自己定义的了
4 所有扫描接口的方式
RequestHandlerSelectors() : 配置要扫描接口的方式
- basePackage() : 指定要扫描的包
- any() : 扫描全部
- none() : 不扫描
- withClassAnnotation() : 扫描类上的注解,参数是一个注解的反射对象
- withMethodAnnotation() : 扫描方法上的注解
5 修改swagger配置类,配置接口扫描过滤的路径
通过 paths() 方法设置过滤的路径
src/main/java/com/lv/config/SwaggerConfig.java
//配置了Swagger的Docket的bean实例 @Bean public Docket docket(){ return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("com.lv.controller")) //paths():过滤什么路径 .paths(PathSelectors.ant("/lv/**")) .build(); }
6 重启程序测试
图中一个接口也没有了,因为我们把唯一扫描的包路径给过滤掉了,说明过滤成功了.
分类:
springboot-study
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术