knife4j除了引入依赖和配置启动类和swagger不一样其他都一样
1.创建项目
2.引入依赖
<!-- knife4j接口文档 start --> <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> <version>2.0.2</version> </dependency> <!-- 避免版本冲突 --> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>29.0-jre</version> </dependency>
3.编写Knife4jConfig (配置docket和apiinfo)
@Configuration @EnableSwagger2 public class Knife4jConfig { @Bean public Docket docket(){ return new Docket(DocumentationType.SWAGGER_2) .groupName("DerKing部分") .apiInfo(apiInfo()) .select()//选择 //可以扫描 any none 指定包 指定类 指定方法 .apis(RequestHandlerSelectors.basePackage("com.example")) // .paths(PathSelectors.ant("com.example.controller/**")) 过滤不需要扫描的路径 .build();//创建 } private ApiInfo apiInfo(){ return new ApiInfoBuilder() .title("可心的kenfej文档") .description("我想认真读一本书") .version("v3.0") .termsOfServiceUrl("https://blog.csdn.net/weixin_58993861?type=blog") .contact("程序员") .build(); } }
4.配置启动类
使用@ConditionalOnClass(SpringfoxWebMvcConfiguration.class)注解
实现 WebMvcConfigurer 接口,重写 addResourceHandlers 方法
实现启动类 加载knife4j的静态资源
package com.example; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import springfox.documentation.spring.web.SpringfoxWebMvcConfiguration; @SpringBootApplication @ConditionalOnClass(SpringfoxWebMvcConfiguration.class) public class Knife4jApplication implements WebMvcConfigurer { public static void main(String[] args) { SpringApplication.run(Knife4jApplication.class, args); } 实现启动类 加载knife4j的静态资源 @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/"); registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); } }
到这里就可以启动项目了 访问http://localhost:8080/doc.html(记得在拦截器里放开请求)
5.具体使用(controller层使用 实体类使用 分组展示)
controller层的使用:
@API @ApiModel:类注释 @Api(tags = "移动管理端--异常处理")
@ApiOperation:方法注释 @ApiOperation(value = "请求400页面")
@ApiParam:参数注释 @ApiParam("用户名")
@Api(tags = "移动管理端--异常处理") @RestController public class HellController { @ApiOperation(value = "请求400页面") @GetMapping("/h") public User he(){ return new User(); } @ApiOperation(value = "请求401页面") @GetMapping("/hell") public String helo(@ApiParam("用户名") String username, @ApiParam("密码") String password){ return username + password; } }
实体类使用:
@API @ApiModel:类注释 @ApiModel("用户实体类")
@ApiModelProperty @ApiModelProperty("用户名")
@ApiModel("用户实体类") public class User { @ApiModelProperty("用户名") public String username; @ApiModelProperty("密码") public String password; }
分组展示:
配置两个Docket就行了。