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就行了。









